cross
説明
例
ベクトルの外積
2 つの 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
結果は 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
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 x 3 x 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)
の外積に等しくなります。
3 番目の次元 (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
結果は、3 番目の次元によるベクトルの集合になります。たとえば、D(1,1,:)
は A(1,1,:)
と B(1,1,:)
の外積に等しくなります。
入力引数
A,B
— 入力配列
数値配列
入力配列。数値配列として指定します。
データ型: single
| double
複素数のサポート: あり
dim
— 演算の対象の次元
正の整数スカラー
演算の対象の次元。正の整数のスカラーとして指定します。次元 dim
のサイズは 3 でなければなりません。値を指定しない場合、既定では、サイズが 3 の最初の配列次元になります。
2 つの 2 次元の入力配列 A
と B
について考えます。
cross(A,B,1)
はA
とB
の列をベクトルとして扱い、対応する列の外積を返します。cross(A,B,2)
はA
とB
の行をベクトルとして扱い、対応する行の外積を返します。
dim
が ndims(A)
より大きい場合、cross
はエラーを返します。
詳細
外積
2 つの 3 次元ベクトル間の外積は、その 2 つに垂直な新しいベクトルを生成します。
次の 2 つのベクトルを考えてみましょう。
基底ベクトル 、、 を含む行列式で表すと、A と B のクロス積は次のようになります。
幾何学的に、 は A と B の両方に対して垂直になります。クロス積の大きさ は、A と B を辺とする平行四辺形の面積に等しくなります。この面積は、A と B の大きさと、次に示されるベクトル間の角度に関係します。
したがって、A と B が平行である場合、外積は 0 になります。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
dim
を指定する場合、定数でなければなりません。ツールボックス関数のコード生成に対する可変サイズの制限 (MATLAB Coder)を参照してください。
コード生成では、この関数のスパース行列入力はサポートされません。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意事項および制限事項:
dim
を指定する場合、定数でなければなりません。コード生成では、この関数のスパース行列入力はサポートされません。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は GPU 配列を完全にサポートしています。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは 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)