0

循环结束后如何将 Q 数组写入 excel?或者循环结束后如何查看存储在 Q 中的数据?

Nlayers=23
N=365

def main_loop(Z,z,Areat0,Areat1,TempLake,i,HSR,TD,FW,wind):
    Q=np.zeros(len(rad))
    Q[0]=0
    Q[i+1]=Qn(HSR,TD,FW,TempLake[0])
    Q0=Q[i]
    Q1=Q[i+1]
    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

for i in xrange(N-1):
    TempLake[i+1]=main_loop(Z,z,Areat0,Areat1,TempLake[i],i,HSR[i],TD[i],FW[i],wind[i]) 
4

1 回答 1

1

简短的回答是,你不能没有 a) 返回它,b) 将它传入并修改它,或者 c) 将它声明为全局或等效的东西。在大多数情况下a是最好的。在函数的最后一行,你可以这样做:

return var01, Q

在主for循环中:

for i in xrange(N-1):
    result, Q = main_loop(...)
    TempLake[i + 1] = result
do_something_with(Q)

但在您的情况下,这是一个相当尴尬的设计,因为您要返回Q N时间,但只使用一次。可能有更好的方法,但我无法从您的示例代码中看出您真正在做什么,所以我无法弄清楚它可能是什么。

于 2012-06-02T21:50:48.513 回答