2016-05-04 11 views
0

を出る更新ndarray:サイクルの終わり(T = T-1)に向かって到達した後Pythonは、私は、関数定義の次のループ有する機能

mu=np.zeros((T,p)) 
mu_post=np.zeros((T,p)) 

for t in arange(T): 
     mu_post[t]= np.dot(a,b) 
     mu[t+1]= mu_post[t] 
     some other processing 

を、コードがそれを介して実行することなく、この機能を出ます。しかし、デバッグしようとすると、手動で(pycharmデバッグコンソールで)mu [t + 1] = mu_post [t]を実行しようとすると、正常に動作します。これには理由があるだろうか。ところで、私はmu [t + 1] [:] = mu_post [t]をやってみましたが、同じ問題があります。

答えて

0

このコードは、この機能を実行せずに終了します。

これはあいまいですが、私はこれでエラーを再現することができます疑う:そうt+15で、最後の反復で

In [47]: mu=np.zeros((5,3)) 
In [48]: mu1=np.zeros((5,3)) 

In [49]: for t in range(5): 
    ....:  mu1[t,:]=[1,2,3] 
    ....:  mu[t+1,:] = mu1[t] 

----> 3  mu[t+1,:] = mu1[t] 

IndexError: index 5 is out of bounds for axis 0 with size 5 

t==4。それはmuの第1次元のインデックスが大きすぎます。

muにはt+1のインデックスを作成する理由を教えてください。それが意味をなさないのであれば、muはなぜmu1と同じサイズですか?

関連する問題