-1

如何从向量中获取值作为矩阵中对角线的值?我正在使用python。

4

3 回答 3

1

这是一个可以做到的列表理解:

[[v[i] if i==j else 0 for i in range(len(v))] for j in range(len(v))]
于 2012-11-27T05:51:52.180 回答
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) 
于 2012-11-27T05:25:54.810 回答
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。

于 2012-11-27T05:22:23.653 回答