这是我编写的用于线性插值矩阵中每个索引的函数(每个索引都是由五个值组成的列表,目标是确定第六个值)。 我不断收到错误消息,指出列表索引超出范围,但我不知道如何。我相信我遗漏了一些很小的东西,但是我无法确定问题所在。 这只是大型项目的一小部分,我想我已经花了很长时间了。因此,任何帮助将不胜感激。
tbi = [[1000, 2000, 3000, 4000, 5000], [1000, 2000, 3000, 4000, 5000]]
def interpolate():
interpolated_vals = []
i = 0
while i < len(tbi):
interpolated_vals.append(tbi[i][0]+((tbi[i][3] - tbi[i][2])*(tbi[i][1] - tbi[i][0])/(tbi[i][4] - [i][2])))
i += 1
return interpolated_vals
答案 0 :(得分:0)
在interpolated_vals.append(...
行的结尾
[i][2])))
必须
tbi[i][2])))
更正后,函数返回[1500, 1500]
答案 1 :(得分:0)
您最后缺少tbi
:
interpolated_vals.append(tbi[i][0]+((tbi[i][3] - tbi[i][2])*(tbi[i][1] - tbi[i][0])/(tbi[i][4] - [i][2])))
应为:
interpolated_vals.append(tbi[i][0]+((tbi[i][3] - tbi[i][2])*(tbi[i][1] - tbi[i][0])/(tbi[i][4] - tbi[i][2])))