kron
クロネッカー テンソル積
説明
K = kron(
は、行列 A,B
)A
と B
のクロネッカー テンソル積を返します。A
が m
行 n
列の行列で、B
が p
行 q
列の行列の場合、kron(A,B)
は、A
の要素と行列 B
間でのすべての取り得る積から構成される m*p
行 n*q
列の行列になります。
例
ブロック対角行列
ブロック対角行列を作成します。
4 行 4 列の単位行列と、対角に反復させる 2 行 2 列の行列を作成します。
A = eye(4); B = [1 -1;-1 1];
kron
を使用して、クロネッカー テンソル積を求めます。
K = kron(A,B)
K = 8×8
1 -1 0 0 0 0 0 0
-1 1 0 0 0 0 0 0
0 0 1 -1 0 0 0 0
0 0 -1 1 0 0 0 0
0 0 0 0 1 -1 0 0
0 0 0 0 -1 1 0 0
0 0 0 0 0 0 1 -1
0 0 0 0 0 0 -1 1
結果は、8 行 8 列のブロック対角行列になります。
行列要素の反復
要素を反復して、行列のサイズを拡大します。
すべての要素が 1 である 2 行 2 列の行列と、2 行 3 列のその要素を反復させる行列を作成します。
A = [1 2 3; 4 5 6]; B = ones(2);
kron
を使って、クロネッカー テンソル積を計算します。
K = kron(A,B)
K = 4×6
1 1 2 2 3 3
1 1 2 2 3 3
4 4 5 5 6 6
4 4 5 5 6 6
結果は、4 行 6 列のブロック行列になります。
スパース ラプラス演算子行列
この例ではスパース ラプラス演算子行列を可視化します。
2 次元、n
行 n
列グリッド上で、離散ラプラス演算子の行列表現は、n*n
行 n*n
列のスパース行列になります。各行または各列に非ゼロ要素が最大 5 個あります。行列は、1 次元の差分演算子のクロネッカー積として生成できます。この例では、n = 5
となります。
n = 5; I = speye(n,n); E = sparse(2:n,1:n-1,1,n,n); D = E+E'-2*I; A = kron(D,I)+kron(I,D);
spy
を使って、スパース パターンを可視化します。
spy(A,'k')
入力引数
A,B
— 入力行列
スカラー | ベクトル | 行列
入力行列。スカラー、ベクトルまたは行列として指定します。A
または B
のいずれかがスパースの場合、kron
は非ゼロの要素のみを乗算し、結果もスパースになります。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
複素数のサポート: あり
詳細
クロネッカー テンソル積
A
が m
行 n
列の行列で、B
が p
行 q
列の行列の場合、A
と B
のクロネッカー テンソル積は、B
を A
の各要素で乗算することで得られる大規模な行列になります。
たとえば、2 つのシンプルな 2 行 2 列の行列の場合、次が生成されます。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意事項および制限事項:
コード生成では、この関数のスパース行列入力はサポートされません。
スレッドベースの環境
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 より前に導入
参考
tensorprod
| hankel
| toeplitz
| dot
| cross
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)