假设我有一个矩阵
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)))