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 を指定する場合、定数でなければなりません。
既定の次元の選択に関する MATLAB との非互換性 (MATLAB Coder)を参照してください。
コード生成では、この関数のスパース行列入力はサポートされません。
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 のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ