Грешка, свързана със задаване на елемент от масив с последователност

Аз съм начинаещ с 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].


person HAMED    schedule 11.05.2015    source източник
comment
Проблемът е, че I=zeros(6) очаква да запазите плаващи числа в I, но когато присвоите I[i], резултатът от дясното изчисление е масив, което от своя страна причинява грешката.   -  person Matt    schedule 11.05.2015


Отговори (1)


Това е така, защото V е масив и забравяте да използвате индекса. Заменете с този ред за I.

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)
person cosmoscalibur    schedule 11.05.2015
comment
Благодаря много. Това беше грешката и трябва да го направя двуизмерен за моята цел. съжалявам, че не мога да гласувам, тъй като репутацията ми не е достатъчна. - person HAMED; 11.05.2015