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 回表示 (過去 30 日間)
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

採用された回答

Star Strider
Star Strider 2018 年 8 月 31 日
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.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by