该计划旨在根据以下内容生成阻值:
(考虑到一系列阻力和温度)。
为了获得电阻的当前值,该等式需要来自阵列的初始电阻和初始温度值(R_0,T_0)。它还需要来自阵列的温度(T)的连续值。
我的尝试:
r_model=[]
for r in r_values:
result = r*(1+2.9*(t_values[r+1]-t_values[r]))
fit2.append(result)
r_model = array(r_model)
我的错误:
index out of bounds
答案 0 :(得分:1)
如果在处理for
循环时需要数组索引,则可以使用enumerate
:
r_model=[]
for (index, r) in enumerate(r_values):
result = r*(1+2.9*(t_values[index+1]-t_values[index]))
fit2.append(result)
r_model = array(r_model)
如果r_values
为[1500,2500,0.0001]
,那么enumerate(r_values)
将遍历此序列:
(0, 1500)
(1,2500)
(2,0.0001)
在每一步中,您都可以使用索引(0,1和2)从t_values
列表中获取正确的值。
答案 1 :(得分:0)
你有:
r_values = arange(1500,2500,0.0001) #R_0 values
for r in r_values:
# . . .
t_values[r+1]
所以第一次通过循环你最终:
t_values[1501]
但是t_values只有3个元素。
答案 2 :(得分:0)
您使用r的值而不是索引来索引t。 for ri, r in r_values
我相信,是语法 - 然后使用ri
来索引t_values
另见Accessing the index in Python 'for' loops
您的代码中的另一个问题:您的等式会讨论与T0的差异,但您会得到差异t_values[r+1]-t_values[r]
。应该是t_values[ri]-t_values[0]
?