error when the input is zero
1 view (last 30 days)
Show older comments
hi all, i am doing a code on MATLAB while the variable input is :
T= Temperature
G= irradiation
but I am getting an error when I have G value equal to zero. the error is :
??? Attempted to access (0); index must be a positive integer or logical.
my code is :
IL=(ISC+(mi)*(T-T1))*(G/G1);
IO1=ISC/(exp((VOC*q)/(NS*A*k*T1))-1);
IO=IO1*((T/T1)^3)*exp((q*EG/(A*k))*((1/T1)-(1/T)));
RS=((NS*A*k*T1/q)*log(((ISC-IM1)/IO1)+1)-VM1)/IM1;
h=IL/1000;
I=0:h:IL;
N=length(I);
V(N)=0; %Error is here on this line!!
for i=1:(N-1)
V(i)=(NS*A*k*T/q)*log(1+(IL-I(i))/IO)-I(i)*RS; %
end
why I am getting this error and how to overcome it ?? please help and advice. thanks
0 Comments
Accepted Answer
Walter Roberson
on 27 Aug 2012
When G is 0, then IL comes out 0. Then 0:h:IL is 0 to 0, which has a length (N) of 0. You then attempt to assign to that 0'th element.
What result would you like to get out when the length comes out 0?
Consider using
I = linspace(0, IL, 1001);
instead of the h and I code you hae at the moment.
More Answers (1)
Babak
on 27 Aug 2012
If you set G = 0, then IL will be evaluated as 0.
When IL = 0, then h = 0 and I = 0:h:IL which is I = [].
And N = length(I) is 0.
Assignment of V(N) is like V(0) is meaningless.
I recommand you not set G = 0. I don't know the reason why it ccan/should be zero.
See Also
Categories
Find more on Startup and Shutdown in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!