Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

cross

説明

C = cross(A,B)AB外積を返します。

  • AB がベクトルの場合、それらの長さは 3 でなければなりません。

  • AB が行列または多次元配列の場合、それらのサイズは同じでなければなりません。この場合、関数 crossAB を 3 要素のベクトルの集合として扱います。この関数は、サイズが 3 の最初の配列次元に沿って対応するベクトルの外積を計算します。

C = cross(A,B,dim) は、次元 dim に沿って配列 AB の外積を評価します。AB は同じサイズで、size(A,dim)size(B,dim) は 3 でなければなりません。dim 入力は、正の整数のスカラーです。

すべて折りたたむ

2 つの 3 次元ベクトルを作成します。

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

AB の外積を求めます。結果 C は、AB の両方に対して垂直なベクトルです。

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

    -5   -11    -2

ドット積を使用して、CAB に対し垂直であることを検証します。

dot(C,A)==0 & dot(C,B)==0
ans = logical
   1

結果は logical 1 (true) です。

ランダムな整数を含む行列を 2 つ作成します。

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

結果 C には、AB の列間の 5 つの独立した外積が含まれます。たとえば、C(:,1)A(:,1)B(:,1) の外積に等しくなります。

ランダムな整数の 3 x 3 x 3 の多次元配列を 2 つ作成します。

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) の外積に等しくなります。

3 番目の次元 (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

結果は、3 番目の次元によるベクトルの集合になります。たとえば、D(1,1,:)A(1,1,:)B(1,1,:) の外積に等しくなります。

入力引数

すべて折りたたむ

入力配列。数値配列として指定します。

データ型: single | double
複素数のサポート: あり

演算の対象の次元。正の整数のスカラーとして指定します。次元 dim のサイズは 3 でなければなりません。値を指定しない場合、既定では、サイズが 3 の最初の配列次元になります。

2 つの 2 次元の入力配列 AB について考えます。

  • cross(A,B,1)AB の列をベクトルとして扱い、対応する列の外積を返します。

  • cross(A,B,2)AB の行をベクトルとして扱い、対応する行の外積を返します。

dimndims(A) より大きい場合、cross はエラーを返します。

詳細

すべて折りたたむ

外積

2 つの 3 次元ベクトル間の外積は、その 2 つに垂直な新しいベクトルを生成します。

次の 2 つのベクトルを考えてみましょう。

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

基底ベクトル i^j^k^ を含む行列式で表すと、A と B の外積は次のようになります。

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

幾何学的に、A×B は A と B の両方に対して垂直になります。外積の大きさ A×B は、A と B を辺とする平行四辺形の面積に等しくなります。この面積は、A と B の大きさと、次に示されるベクトル間の角度に関係します。

A×B=ABsinα.

したがって、A と B が平行である場合、外積は 0 になります。

拡張機能

参考

| |

R2006a より前に導入