0

该程序旨在根据以下条件生成电阻值:

在此处输入图像描述

(给定一系列电阻和温度)。

为了获得电阻的当前值,该方程需要来自阵列的初始电阻和初始温度值 (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
4

3 回答 3

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列表中获取正确的值。

于 2013-02-16T16:27:48.320 回答
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 个元素。

于 2013-02-16T16:21:26.043 回答
0

您正在使用 r 的值而不是索引来索引 t。for ri, r in r_values我相信,是语法 - 然后用于ri索引t_values

另请参阅在 Python 'for' 循环中访问索引

您的代码中的另一个问题:您的方程式讨论了与 T0 的差异,但您接受了差异t_values[r+1]-t_values[r]。应该是t_values[ri]-t_values[0]

于 2013-02-16T16:21:33.323 回答