我有一个给定的行矩阵,我希望它成为零矩阵上对角线的元素
如果我有一个矩阵a = [1,2,3]
,那么我希望输出为
[[0 1 0 0]
[0 0 2 0]
[0 0 0 3]
[0 0 0 0]]
我的原始代码是
import numpy as np
N=5
a0=2*np.ones((1,N))
a1=-1*np.ones((1,(N-1)))
A0=np.diag(a0,0)
A1=np.diag(a1,1)
A2=np.diag(a1,-1)
当我需要在上对角线上有元素a1的完整矩阵时,A1的输出仅为[-1]
答案 0 :(得分:3)
您可以将np.diag
与偏移量配合使用:
a=np.array([1,2,3])
np.diag(a, 1)
array([[0, 1, 0, 0],
[0, 0, 2, 0],
[0, 0, 0, 3],
[0, 0, 0, 0]])