克朗克

该程序计算两个矩阵的 Kronecker 乘积。

用途

KRONECKER 存储过程的语法如下:
KRONECKER matrixAname,matrixBname,matrixCname
参数
matrixAname
输入矩阵 A 的名称。
类型:NVARCHAR(ANY)
matrixBname
输入矩阵 B 的名称。
类型:NVARCHAR(ANY)
matrixCname
输出矩阵 C 的名称。
类型:NVARCHAR(ANY)
退货
BOOLEAN TRUE(如果成功)。

详细信息

矩阵 A 和 B 的尺寸(即行列数)不必相同。 由此得到的矩阵 C 的维数与 A 和 B 各自维数的乘积相对应。 操作前矩阵 C 必须不存在。 如果 A 是 m×n 矩阵,B 是 k×l 矩阵,那么 m*k×n*l 矩阵的克朗克乘积为 C_ {i * k + r, j * l + s} = A_ {i, j} * B_ {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)