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 のいずれかがスパースの場合、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 関数の実行を参照してください。
kron 関数は、GPU 配列を完全にサポートします。GPU 上で関数を実行するには、入力データを gpuArray (Parallel Computing Toolbox) として指定します。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
参考
tensorprod | hankel | toeplitz | dot | cross
MATLAB Command
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 のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
 - Canada (English)
 - United States (English)
 
ヨーロッパ
- 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)