与使用序列设置数组元素有关的错误

时间:2015-05-11 13:00:26

标签: python loops sequence

我是Python的初学者,如果有人帮我解决以下错误,我将感激不尽:

ValueError: setting an array element with a sequence. 

我希望程序在每一步中从数组Ir获取相关值并在循环中运行它。我的意思是它应该Ir[0]=0 , Ir[1]=200 ,...并计算相应的I[0], I[1], ...

 from math import *
from pylab import *
from numpy import *
from scipy import *
Ir=arange(200,1201,200)
Temp=25.0
Area=243.36
Isc_cell = 9.01984039
ns=1
np=1
V = arange(0,0.7,0.01)
n1=1.0
Is1 = 1.5648048e-10
n2= 2.0
Is2= 9.85608e-6
T_co = 0.0005
Rs = 2.7487398e-3
Rsh = 410913.8725
k = 1.38e-23
q = 1.6e-19
Eg=1.11
T= Temp+273.0
Tmeas= 273+25.0
Vt=(k*T)/q

j=range(0,6)
Iph=zeros(6)
I=zeros(6)
#I=zeros(len(V))
I0=Is1*((T/Tmeas)**(3/n1))*exp(Eg*((T/Tmeas)-1)/(n1*Vt));
I02=Is2*((T/Tmeas)**(3/n2))*exp(Eg*((T/Tmeas)-1)/(n2*Vt));
for i in j:
    Iph[i] = Isc_cell*(Ir[i]/1000.0)*(1+(T_co*(Temp-25)));
    I[i] = Iph[i] - I0*(exp((V+I[i]*Rs)/(n1*Vt))-1)-I02*(exp((V+I[i]*Rs)/(n2*Vt))-1)-((V+I[i]*Rs)/Rsh);
    i=i+1

P.S。我很困惑,因为它适用于Iph[i],但I[i]有错误。

1 个答案:

答案 0 :(得分:0)

这是因为 V 是一个数组,你忘了使用下标。替换为此行。

I[i] = Iph[i] - I0*(exp((V[i]+I[i]*Rs)/(n1*Vt))-1)-I02*(exp((V[i]+I[i]*Rs)/(n2*Vt))-1)-((V[i]+I[i]*Rs)/Rsh)