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