【问题标题】:Multiplying matrices by block将矩阵乘以块
【发布时间】:2016-10-18 14:49:23
【问题描述】:

我需要将不同形状的矩阵 M 和 N 与有限大小的 MxN 相乘。

我想一个例子会更清楚:

A(形状:4x4)=

0  3  0  0  
0  0  4  0  
0  0  0  3  
0  0  0  0

B(形状:7x7)=

3  0  0  0  0  0  0
0  2  0  0  0  0  0
0  0  1  0  0  0  0
0  0  0  0  0  0  0
0  0  0  0  -1  0  0
0  0  0  0  0  -2  0
0  0  0  0  0  0  -3

因此,我想要一个形状为 (4*7 x 4*7) 的矩阵,这意味着 (28 x 28) 如下:

0  3*B  0  0  
0  0  4*B  0  
0  0  0  3*B  
0  0  0  0

其中 B 仍然是我们的形状矩阵 (7x7),而 0 表示测量 (7x7) 的全零块。

也许有一个带有 numpy 的函数可以做到这一点......但我找不到它。

(仅供参考,用于量子力学)

【问题讨论】:

    标签: python python-2.7 numpy matrix


    【解决方案1】:

    您正在寻找 Kronecker 产品 np.kron,它可以方便地制作这样的块矩阵:

    >>> A = np.array([[1, 2], [0, 1]])
    >>> B = np.array([[1, 2, 3], [0, 1, 3], [0,0,0]])
    >>> np.kron(A,B)
    array([[1, 2, 3, 2, 4, 6],
           [0, 1, 3, 0, 2, 6],
           [0, 0, 0, 0, 0, 0],
           [0, 0, 0, 1, 2, 3],
           [0, 0, 0, 0, 1, 3],
           [0, 0, 0, 0, 0, 0]])
    

    【讨论】:

      猜你喜欢
      • 2013-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-20
      相关资源
      最近更新 更多