2017-04-21 12 views
1

私はたくさん一緒に投げようとしていますが、私のコードには問題はありません。 。私はそれは私にエラーを与えている非常に最後の行だ、それがアップリンギングのコードの行で話してわからないんだけど"TypeError: 'int'オブジェクトに '_getitem'という属性がありません。理由はわかりません

import numpy as np 
import matplotlib.pyplot as plt 

phi = np.zeros(181) 

for i in range(0,181): 
    phi[i] = i-90. 

hF = np.zeros((181,321)) 
hM = np.zeros((181,321)) 
Ob = 23.5*3.131592/180 
w = np.zeros(321) 
e = 0.6 

for j in range(0,321): 
    w[j] = 2*np.pi*j/320 

SF = 3230.3 
SM = np.zeros(321) 
L = 283 

decF = np.zeros(321) 

for j in range(0,321): 
    decF[j] = Ob*np.sin(w[j]) 

dF = np.zeros(321) 
dM = np.zeros(321) 
QF = np.zeros((181,321)) 

for j in range(0,321): 
    dF[j] = (1+e*np.cos(w[j]-L*np.pi/320))/(1-e**2) 

for i in range(0,181): 
    for j in range(0,321): 
     QF = 0 
     if np.abs(np.tan(phi[i]*np.pi/180)*np.tan(decF[j])) <=1: 
      hF[i][j] = np.acos(-np.tan(phi[i]*np.pi/180)*np.tan(decF[j])) 
      QF[i][j] = (SF/np.pi)*dF[j]*(hF[i][j]*np.sin(phi[i]*np.pi/180)*np.sin(decF[j])+np.cos(phi[i]*np.pi/180)*np.cos(decF[i])*sin(hF[i][j])) 

答えて

2

あなたの問題行はこれです:。

QF = 0 

そして、あなたはやろうとします:

QF[i][j] = ... 

整数で何かを検索する方法はありません。

はまた、私はあなたがsin関数を定義していないことに気づいたが、あなたは私があなたの最後の行は読むべきだと思うそれを使用しようとしている:

QF[i][j] = (SF/np.pi)*dF[j]*(hF[i][j]*np.sin(phi[i]*np.pi/180)*np.sin(decF[j])+np.cos(phi[i]*np.pi/180)*np.cos(decF[i])*np.sin(hF[i][j])) 

はまた、私はあなたがnp.acosときにそれを呼び出している気づきましたnp.arccosである必要があります。

関連する問題