Hello Friends, I am trying to execute a simple code but keep getting the following error message: Subscript indices must either be real positive integers or logicals. I get the error message for the code in italics. Kindly help. Thanks...

1 visualizzazione (ultimi 30 giorni)
SOC(1)=(SOCmn +((IBAT(1)*ebc*1)/(cbat))); if SOC(1)>SOCmx SOC(1)=SOCmx; end for y=1:8760 SOC(y)=(SOC(y-1)*(1-dh) + Pgen(y)-(Pload(y)/EFFINV))*ebc; if SOC(y)>SOCmx SOC(y)=SOCmx; end end

Risposta accettata

Star Strider
Star Strider il 31 Ago 2018
This is the problem:
for y=1:8760
_SOC(y)=(SOC(y-1)*(1-dh) + ...
In the first iteration through the loop, ‘y’ is 1, so (y-1) is 0.
Zero is not a positive integer. Positive integers are integers greater than 0.

Più risposte (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by