2012-06-02 24 views
0

如何在循环结束后将Q数组写入excel?或者如何在循环结束后看到存储在Q中的数据?如何在循环结束时访问函数内部的np.array的值?

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]) 

回答

1

简短的回答是,你不能没有)还,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) 

但是,这是一个比较尴尬的设计在你的情况,因为你回来QN次,但只能使用一次。也许有更好的方法,但我不能从你的示例代码中知道你在做什么,所以我不知道它可能是什么。