首页 > 解决方案 > 如何获得只有上对角线元素的零矩阵?(上对角线元素已知)

问题描述

我有一个给定的行矩阵,我希望它是我的零矩阵上对角线的元素

如果我有一个矩阵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 的输出仅为 [-1],其中元素 a1 在上对角线上

标签: pythonnumpy

解决方案


您可以使用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]])

推荐阅读