Main Content

cross

설명

C = cross(A,B)AB외적을 반환합니다.

  • AB가 벡터인 경우 그 길이는 3이어야 합니다.

  • AB가 행렬이나 다차원 배열이면 크기가 같아야 합니다. 이 경우 cross 함수는 AB를 요소를 3개 가진 벡터로 취급합니다. 이 함수는 크기가 3인 첫 번째 배열 차원을 따라 대응하는 벡터의 외적을 계산합니다.

예제

C = cross(A,B,dim)은 차원 dim을 따라 배열 AB의 외적을 실행합니다. AB는 크기가 같아야 하며 size(A,dim)size(B,dim)은 모두 3이어야 합니다. dim 입력값은 양의 정수 스칼라입니다.

예제

예제

모두 축소

3차원 벡터를 만듭니다.

A = [4 -2 1];
B = [1 -1 3];

AB의 외적을 구합니다. 그 결과인 CAB에 수직인 벡터입니다.

C = cross(A,B)
C = 1×3

    -5   -11    -2

내적을 사용하여 CAB에 수직인지 확인합니다.

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

AB의 외적을 구합니다.

C = cross(A,B)
C = 3×5

   300   122  -114  -228  -181
  -291  -198  -105   -30    55
    87   136   101   234   175

그 결과인 CA의 열과 B의 열에 독립인 5개의 외적을 포함합니다. 예를 들어, C(:,1)A(:,1)B(:,1)의 외적과 같습니다.

임의의 정수로 구성된 3×3×3 다차원 배열을 두 개 만듭니다.

A = randi(10,3,3,3);
B = randi(25,3,3,3);

행을 벡터로 취급하여 AB의 외적을 구합니다.

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)을 따라 AB의 외적을 구합니다.

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,:)의 외적과 같습니다.

입력 인수

모두 축소

입력 배열로, 숫자형 배열로 지정됩니다.

데이터형: single | double
복소수 지원 여부:

연산을 수행할 차원으로, 양의 정수 스칼라로 지정됩니다. 차원 dim의 크기는 3이어야 합니다. 값이 지정되지 않은 경우 디폴트 값은 크기가 3인 첫 번째 배열 차원입니다.

두 개의 2차원 입력 배열 AB가 있다고 가정하겠습니다.

  • cross(A,B,1)AB의 열을 벡터로 취급하고 대응하는 열의 외적을 반환합니다.

  • cross(A,B,2)AB의 행을 벡터로 취급하고 대응하는 행의 외적을 반환합니다.

cross(A,B,1) column-wise computation and cross(A,B,2) row-wise computation.

crossdimndims(A)보다 큰 경우 오류를 반환합니다.

세부 정보

모두 축소

외적

두 3차원 벡터 사이의 외적은 해당 두 벡터에 수직인 새 벡터를 생성합니다.

다음과 같은 두 벡터가 있다고 가정하겠습니다.

A=a1i^+a2j^+a3k^,B=b1i^+b2j^+b3k^.

기저 벡터 i^, j^k^에 대한 행렬식을 보면 AB의 외적은 다음과 같습니다.

C=A×B=|i^j^k^a1b1a2b2a3b3|=(a2b3a3b2)i^+(a3b1a1b3)j^+(a1b2a2b1)k^.

기하학적으로 A×BAB에 대해 수직입니다. 외적의 크기 A×BAB를 변으로 가지는 평행사변형의 영역과 동일합니다. 해당 영역은 벡터 사이의 다음 각도뿐만 아니라 AB의 크기와 관련 있습니다.

A×B=ABsinα.

따라서 AB가 평행이면 외적은 0입니다.

Vector A along the x-axis and vector B along the y-axis. Their cross product is perpendicular to both along the z-axis. The area of the parallelogram formed in the xy-plane by A and B is equal to the magnitude of the cross product.

확장 기능

버전 내역

R2006a 이전에 개발됨