Numpy用2D矩阵创建对角矩阵

时间:2019-09-19 17:56:18

标签: python numpy

假设我有一个矩阵

M = [1 2]                              
    [3 4]

我想创建4x4矩阵:

[M 0]
[0 M]
=
[1 2 0 0]
[3 4 0 0]
[0 0 1 2]
[0 0 3 4]

我该怎么做? 通常,我如何制作一个2nx2n的矩阵,该矩阵沿对角线有N个M副本?

这是我到目前为止提出的解决方案,但是它非常难看。

def diag(m, n):
    return np.row_stack(tuple(
                   np.column_stack(tuple(m if i == j else np.zeros(m.shape)
                                         for i in range(n)))
                   for j in range(n)))

0 个答案:

没有答案