我有一些数据:
values = [2.1254,0.0125,1.3542,0.2543]
residuals = [0.0251,0.0005,0.1223,0.0043]
然后我创建了一个矩阵:
matrix = [[i] * len(values) for i in values]
现在我想将残差向量加到矩阵中的对角线上。 我试过了:
def fc(x)
for i in range(len(values)):
x[i][i] + residuals[i]
但我不知道如何返回结果。
print(fc(matrix))
返回None
这是理想的矩阵:
matrix1 = [[2.1505,2.1254,2.1254,2.1254],
[0.0125,0.013,0.0125,0.0125,
[1.3542,1.3542,1.4765,1.3542]
[0.2543,0.2543,0.2543,0.2586]]
答案 0 :(得分:1)
这是使用列表推导和enumerate
的一种方式:
values = [2.1254,0.0125,1.3542,0.2543]
residuals = [0.0251,0.0005,0.1223,0.0043]
def fc(values, residuals):
n = len(values)
res = [[i]*n for i in values]
for idx, j in enumerate(residuals):
res[idx][idx] += j
return res
res = fc(values, residuals)
结果:
[[2.1505, 2.1254, 2.1254, 2.1254],
[0.0125, 0.013, 0.0125, 0.0125],
[1.3542, 1.3542, 1.4765, 1.3542],
[0.2543, 0.2543, 0.2543, 0.2586]]