3

このメッセージが表示されるのはなぜですか?

 Traceback (most recent call last):
  File "C:\EclipseWorkspaces\csse120\Lake2\Mainloop2.py", line 46, in <module>

Q[i+1]=Qn(HSR[i],TD[i],FW[i],TempLake[i][0])

IndexError: index out of bounds



Nlayers=23
N=365

HSR=Hsr(rad)
TD=Td(air,neb)
FW=Fw(wind)

def main_loop(Z,z,Areat0,Areat1,TempLake,wind,Q0,Q1):
    n=TempLake.size
    var00=Imp_scheme(Q0,Q1,z,Areat0,Areat1,Z,TempLake,wind)
    var01=fix_profile(n,var00,Areat0)
    return var01

TempLake=np.zeros((N,Nlayers))
TempLake[0]=T0

Q=np.zeros(N)
Q[0]=0.0
for i in xrange(N):
    Q[i+1]=Qn(HSR[i],TD[i],FW[i],TempLake[i][0])
    TempLake[i+1]=main_loop(Z,z,Areat0,Areat1,TempLake[i],wind[i],Q[i],Q[i+1])
4

2 に答える 2

2

xrange(N)0 から N-1 までの値が得られます。それに 1 を追加しているのでQ、インデックス 1 から N でアクセスします。ただしQ、N 要素しかないため、N は最高のインデックス N-1 よりも 1 大きくなります。

于 2012-06-03T00:28:35.917 に答える
0

for ループの最後の繰り返しで、プログラムは Q[i+1]、つまり Q[N] にアクセスしようとします。Q のサイズは N ですが、インデックスが 0 から始まる場合、Q[N-1] は実際には最後の項目です。

于 2012-06-03T00:28:21.777 に答える