2017-04-21 48 views
1

我想一起扔了一大堆,但显然这不是我的代码有问题,但。我不知道它的代码它响了线谈论它是一个的给我一个错误,最后一行我得到一个“类型错误:‘诠释’对象有没有属性‘_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

相关问题