Python “错误”;数组的索引太多“;

Python “错误”;数组的索引太多“;,python,for-loop,matrix,Python,For Loop,Matrix,我想生成一个2D矩阵I[x,t],其中有两个for循环。这是一个70*60矩阵。 我首先计算一行60列的向量。然后,在内部for循环中,对于每个t步骤,我使用x为myV计算矩阵I,这是一个包含一列和70行的向量。 对于I[x,t],我面临以下错误: IndexError: too many indices for array 如果有人帮我改正,我会很高兴的 from math import * from pylab import * from numpy import * N=60 #num

我想生成一个2D矩阵
I[x,t]
,其中有两个for循环。这是一个
70*60
矩阵。
我首先计算一行60列的向量。然后,在内部for循环中,对于每个
t
步骤,我使用
x
为my
V
计算矩阵
I
,这是一个包含一列和70行的向量。
对于
I[x,t]
,我面临以下错误:

IndexError: too many indices for array
如果有人帮我改正,我会很高兴的

from math import *
from pylab import *
from numpy import *

N=60 #number of cells
Ir=zeros((1,N))
Ir=Ir+1000.0
Temp=zeros((1,N))
Temp=Temp+25.0
V = arange(0,0.7,0.01)
Area=243.36
ns=1
np=1
Jsc_cell = 0.03785
Isc_cell = Jsc_cell * Area
n1=1.0
J01 = 6.2e-13
Is1 = J01 * Area
n2= 2.0
J02 = 7.3e-9
Is2= J02 * Area
T_co = 0.0005
Rs = 2.7487398e-3
Rsh = 410913.8725
k = 1.38e-23
q = 1.6e-19
Eg=1.11
Tmeas= 273+25.0

Iph=zeros((1,N))
I0=zeros((1,N))
I02=zeros((1,N))
Vt=zeros((1,N))
I=zeros((len(V),N))
P=zeros((len(V),N))
T=zeros((1,N))
Pmpp_cell=zeros((1,N))
Impp_cell=zeros((1,N))
Vmpp_cell=zeros((1,N))
Isc_cell_c=zeros((1,N))

for t in range(0,N):
    T[0,t] = Temp[0,t]+273.0
    Vt[0,t]=(k*T[0,t])/q
    I0[0,t]=Is1*((T[0,t]/Tmeas)**(3/n1))*exp(Eg*((T[0,t]/Tmeas)-1)/(n1*Vt[0,t]));
    I02[0,t]=Is2*((T[0,t]/Tmeas)**(3/n2))*exp(Eg*((T[0,t]/Tmeas)-1)/(n2*Vt[0,t]));
    Iph[0,t] = Isc_cell*(Ir[0,t]/1000.0)*(1+(T_co*(Temp[0,t]-25)));

    for x in range(0,len(V)):
        I[x,t] = Iph[0,t] - I0[0,t]*(exp((V[x,0]+I[x,t]*Rs)/(n1*Vt[0,t]))-1)-I02[0,t]*(exp((V[x,0]+I[x,t]*Rs)/(n2*Vt[0,t]))-1)-((V[x,0]+I[x,t]*Rs)/Rsh)
        P[x,t] = I[x,t]*V[x,0]
        x=x+1
t=t+1 

另外,是否有任何解决方案可以避免提前定义参数及其尺寸

运行代码时,我看到变量
V
通过初始化是1D数组:

V = arange(0,0.7,0.01)

但是,在最后计算
I[x,t]
p[x,t]
时,您使用了
V
的二维索引。通过将
V[x,0]
替换为
V[x]
您的代码完成时不会出现错误。

非常感谢亲爱的RaJa。它现在可以工作了,但是
V[0,x]
V[x]
之间有什么区别吗,因为它们都是一维向量?当我刚接触Python的时候,我要求这个来了解更多。我很抱歉,我不能投票,因为我的声誉还不够。请接受我的评论。
V[x,0]
是一个二维数组,其中列索引始终为零。您可以通过使用
V检查形状来验证。类似
(100,)
的形状将指示一维数组,而
(100,1)
是二维的,即使它是“一维的”,非常感谢您的解释。