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 に答える