クロネッカー

この手続きは2つの行列のクロネッカー積を計算する。

使用法

KRONECKERストアドプロシージャの構文は以下の通りである:
KRONECKER matrixAname,matrixBname,matrixCname )
パラメーター
matrixAname
入力行列 A の名前。
タイプNVARCHAR(ANY)
matrixBname
入力行列 B の名前。
タイプNVARCHAR(ANY)
matrixCname
出力行列 C の名前。
タイプNVARCHAR(ANY)
戻り
成功すれば真。

詳細

行列AとBは同じ次元、つまり行と列の数を持つ必要はない。 結果として得られる行列Cは、AとBのそれぞれの次元の積に対応する次元を持つ。 マトリックスCは、操作前には存在してはならない。 A を m x n 行列、B を k x l 行列とすると、C_{i {i * k + r, j * l + s} = A_{i {i, j} となるようなクロネッカー積 m * k x n * l 行列。 * B_{r {r, s} である。

CALL nzm..SHAPE('1,10,1000,10000', 2, 2, 'A');
CALL nzm..SHAPE('2,5,7,19', 2, 2, 'B');
CALL nzm..KRONECKER('A', 'B', 'C');
CALL nzm..PRINT('C');
CALL nzm..DELETE_MATRIX('A');
CALL nzm..DELETE_MATRIX('B');
CALL nzm..DELETE_MATRIX('C');

 SHAPE
-------
 t
(1 row)

 SHAPE
-------
 t
(1 row)

KRONECKER
-----------
t
(1 row)

                           PRINT
-----------------------------------------------------------------
 -- matrix: C --
 2, 5, 20, 50
 7, 19, 70, 190
 2000, 5000, 20000, 50000
 7000, 19000, 70000, 190000
(1 row)

 DELETE_MATRIX
---------------
 t
(1 row)

 DELETE_MATRIX
---------------
 t
(1 row)

 DELETE_MATRIX
---------------
 t
(1 row)