cross
설명
예제
벡터의 외적
3차원 벡터를 만듭니다.
A = [4 -2 1]; B = [1 -1 3];
A
와 B
의 외적을 구합니다. 그 결과인 C
는 A
와 B
에 수직인 벡터입니다.
C = cross(A,B)
C = 1×3
-5 -11 -2
내적을 사용하여 C
가 A
와 B
에 수직인지 확인합니다.
dot(C,A)==0 & dot(C,B)==0
ans = logical
1
결과는 논리값 1
(true
)입니다.
행렬의 외적
임의의 정수를 포함하는 행렬을 두 개 만듭니다.
A = randi(15,3,5)
A = 3×5
13 14 5 15 15
14 10 9 3 8
2 2 15 15 13
B = randi(25,3,5)
B = 3×5
4 20 1 17 10
11 24 22 19 17
23 17 24 19 5
A
와 B
의 외적을 구합니다.
C = cross(A,B)
C = 3×5
300 122 -114 -228 -181
-291 -198 -105 -30 55
87 136 101 234 175
그 결과인 C
는 A
의 열과 B
의 열에 독립인 5개의 외적을 포함합니다. 예를 들어, C(:,1)
은 A(:,1)
과 B(:,1)
의 외적과 같습니다.
다차원 배열의 외적
임의의 정수로 구성된 3×3×3 다차원 배열을 두 개 만듭니다.
A = randi(10,3,3,3); B = randi(25,3,3,3);
행을 벡터로 취급하여 A
와 B
의 외적을 구합니다.
C = cross(A,B,2)
C = C(:,:,1) = -34 12 62 15 72 -109 -49 8 9 C(:,:,2) = 198 -164 -170 45 0 -18 -55 190 -116 C(:,:,3) = -109 -45 131 1 -74 82 -6 101 -121
결과는 행 벡터의 모음입니다. 예를 들어, C(1,:,1)
은 A(1,:,1)
과 B(1,:,1)
의 외적과 같습니다.
세 번째 차원(dim = 3
)을 따라 A
와 B
의 외적을 구합니다.
D = cross(A,B,3)
D = D(:,:,1) = -14 179 -106 -56 -4 -75 2 -37 10 D(:,:,2) = -37 -162 -37 50 -124 -78 1 63 118 D(:,:,3) = 62 -170 56 46 72 105 -2 -53 -160
결과는 세 번째 차원 방향 벡터의 모음입니다. 예를 들어, D(1,1,:)
은 A(1,1,:)
과 B(1,1,:)
의 외적과 같습니다.
입력 인수
A,B
— 입력 배열
숫자형 배열
입력 배열로, 숫자형 배열로 지정됩니다.
데이터형: single
| double
복소수 지원 여부: 예
dim
— 연산을 수행할 차원
양의 정수 스칼라
연산을 수행할 차원으로, 양의 정수 스칼라로 지정됩니다. 차원 dim
의 크기는 3이어야 합니다. 값이 지정되지 않은 경우 디폴트 값은 크기가 3인 첫 번째 배열 차원입니다.
두 개의 2차원 입력 배열 A
와 B
가 있다고 가정하겠습니다.
cross(A,B,1)
은A
와B
의 열을 벡터로 취급하고 대응하는 열의 외적을 반환합니다.cross(A,B,2)
은A
와B
의 행을 벡터로 취급하고 대응하는 행의 외적을 반환합니다.
cross
는 dim
이 ndims(A)
보다 큰 경우 오류를 반환합니다.
세부 정보
외적
두 3차원 벡터 사이의 외적은 해당 두 벡터에 수직인 새 벡터를 생성합니다.
다음과 같은 두 벡터가 있다고 가정하겠습니다.
기저 벡터 , 및 에 대한 행렬식을 보면 A와 B의 외적은 다음과 같습니다.
기하학적으로 는 A와 B에 대해 수직입니다. 외적의 크기 는 A와 B를 변으로 가지는 평행사변형의 영역과 동일합니다. 해당 영역은 벡터 사이의 다음 각도뿐만 아니라 A와 B의 크기와 관련 있습니다.
따라서 A와 B가 평행이면 외적은 0입니다.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
dim
을 제공할 경우 그 값은 상수여야 합니다.Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder) 항목을 참조하십시오.
코드 생성 시 이 함수에 대해 희소 행렬 입력값은 지원되지 않습니다.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
dim
을 제공할 경우 그 값은 상수여야 합니다.코드 생성 시 이 함수에 대해 희소 행렬 입력값은 지원되지 않습니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
cross
함수는 GPU 배열을 완전히 지원합니다. GPU에서 이 함수를 실행하려면 입력 데이터를 gpuArray
(Parallel Computing Toolbox)로 지정하십시오. 자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
분산 배열
Parallel Computing Toolbox™를 사용하여 대규모 배열을 클러스터의 결합된 메모리에 걸쳐 분할할 수 있습니다.
이 함수는 분산 배열을 완전히 지원합니다. 자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)