MATLAB ヘルプ センター
外積
C = cross(A,B)
C = cross(A,B,dim)
C = cross(A,B) は A と B の外積を返します。
A,B
A
B
A と B がベクトルの場合、それらの長さは 3 でなければなりません。
A と B が行列または多次元配列の場合、それらのサイズは同じでなければなりません。この場合、関数 cross は A と B を 3 要素のベクトルの集合として扱います。この関数は、サイズが 3 の最初の配列次元に沿って対応するベクトルの外積を計算します。
cross
例
C = cross(A,B,dim) は、次元 dim に沿って配列 A と B の外積を評価します。A と B は同じサイズで、size(A,dim) と size(B,dim) は 3 でなければなりません。dim 入力は、正の整数のスカラーです。
dim
size(A,dim)
size(B,dim)
すべて折りたたむ
2 つの 3 次元ベクトルを作成します。
A = [4 -2 1]; B = [1 -1 3];
A と B の外積を求めます。結果 C は、A と B の両方に対して垂直なベクトルです。
C
C = 1×3 -5 -11 -2
ドット積を使用して、C が A と B に対し垂直であることを検証します。
dot(C,A)==0 & dot(C,B)==0
ans = logical 1
結果は logical 1 (true) です。
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
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) の外積に等しくなります。
C(:,1)
A(:,1)
B(:,1)
ランダムな整数の 3×3×3 の多次元配列を 2 つ作成します。
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) の外積に等しくなります。
C(1,:,1)
A(1,:,1)
B(1,:,1)
3 番目の次元 (dim = 3) に沿って A と B の外積を求めます。
dim = 3
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,:) の外積に等しくなります。
D(1,1,:)
A(1,1,:)
B(1,1,:)
入力配列。数値配列として指定します。
データ型: single | double 複素数のサポート: あり
single
double
演算の対象の次元。正の整数のスカラーとして指定します。次元 dim のサイズは 3 でなければなりません。値を指定しない場合、既定では、サイズが 3 の最初の配列次元になります。
2 つの 2 次元の入力配列 A と B について考えます。
cross(A,B,1) は A と B の列をベクトルとして扱い、対応する列の外積を返します。
cross(A,B,1)
cross(A,B,2) は A と B の行をベクトルとして扱い、対応する行の外積を返します。
cross(A,B,2)
dim が ndims(A) より大きい場合、cross はエラーを返します。
ndims(A)
2 つの 3 次元ベクトル間の外積は、その 2 つに垂直な新しいベクトルを生成します。
次の 2 つのベクトルを考えてみましょう。
A=a1i^+a2j^+a3k^ ,B=b1i^+b2j^+b3k^ .
基底ベクトル i^、j^、k^ を含む行列式で表すと、A と B のクロス積は次のようになります。
C=A×B=|i^j^k^a1b1a2b2a3b3| =(a2b3−a3b2)i^+(a3b1−a1b3)j^+(a1b2−a2b1)k^ .
幾何学的に、A×B は A と B の両方に対して垂直になります。クロス積の大きさ ‖A×B‖ は、A と B を辺とする平行四辺形の面積に等しくなります。この面積は、A と B の大きさと、次に示されるベクトル間の角度に関係します。
‖A×B‖=‖A‖ ‖B‖sinα .
したがって、A と B が平行である場合、外積は 0 になります。
すべて展開する
使用上の注意および制限:
dim 引数を使用する場合、コード生成時に定数でなければなりません。
コード生成では、この関数のスパース行列入力はサポートされません。
A と B がコード生成時に可変サイズの配列で実行時にベクトルになる場合、実行時のベクトルは向きが同じでなければなりません。
dim を指定する場合、定数でなければなりません。
backgroundPool
ThreadPool
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
cross 関数は、GPU 配列を完全にサポートします。GPU 上で関数を実行するには、入力データを gpuArray (Parallel Computing Toolbox) として指定します。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
gpuArray
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
R2006a より前に導入
dot | kron | norm
dot
kron
norm
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ