使用python将值映射到矩阵的对角线

时间:2012-11-27 05:15:59

标签: python

如何将矢量中的值作为矩阵中对角线的值?我正在使用python。

3 个答案:

答案 0 :(得分:1)

这是一个列表理解:

[[v[i] if i==j else 0 for i in range(len(v))] for j in range(len(v))]

答案 1 :(得分:0)

你的意思是:

vec = [1,2,3,4]
->
mat = [[1,0,0,0],
       [0,2,0,0],
       [0,0,3,0],
       [0,0,0,4]]

然后一般的想法是通过带有计数器的vec循环并在制作该列表vec [i]的第i个元素之后将[0,0,0,0]附加到mat。

答案 2 :(得分:0)

如果您只想要一个列表列表来制作矩阵,例如:

values = [1,2,3]
matrix =[[1 0 0]
         [0 2 0]
         [0 0 3]]

然后以下代码应该起作用

values = [1,2,3]
matrix=[]
size = len(values)
for i in range(size):
  tmp = []
  for j in range(size):
    if i == j:
      tmp.append(values[i])
    else:
      tmp.append(0)
  matrix.append(tmp)
print(matrix)