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 的值。您正在向其中添加一个,因此您可以Q从索引 1 到 N 访问。但Q只有 N 个元素,因此 N 比最高索引 N-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 回答