Info

この質問は閉じられています。 編集または回答するには再度開いてください。

for loop help matlab error

1 ビュー (過去 30 日間)
B
B 2015 年 3 月 24 日
終了済み: MATLAB Answer Bot 2021 年 8 月 20 日
I really can't understand the arrays and matrices system in matlab...:( Please help with the following; I'm getting (??? Attempted to access Tc(21); index out of bounds because numel(Tc)=20.
Error in ==> newestt at 9 Tc0=Tc(i);) ================================================================================================== num=20; for i=2:num; Tc0=110; Tc(20)=27; Tc(1)=109; detaTc=(Tc0-Tc(20))/num; Tc(i)=(Tc0- detaTc) i=i+1; Tc0=Tc(i); end
Thanks!~

回答 (2 件)

Julia
Julia 2015 年 3 月 24 日
Hi,
The error states clearly, that you try to access the 21st entry of Tc, but Tc has only 20 entries:
i=i+1;
Tc0=Tc(i);
In the last iteration for i=num (in your example i=20), this leads to the error.
  3 件のコメント
Julia
Julia 2015 年 3 月 24 日
How about this code?
num=20;
Tc0=110;
Tc(20)=27;
Tc(1)=109;
for i=2:num;
detaTc=(Tc0-Tc(20))/num;
Tc(i)=(Tc0- detaTc)
Tc0=Tc(i);
end
If you set Tc0=110 inside the loop it will always overwrite the vale Tc0=Tc(i).

Stalin Samuel
Stalin Samuel 2015 年 3 月 24 日
num=20;
for i=2:num;
Tc0=110;
Tc(20)=27;
Tc(1)=109;
detaTc=(Tc0-Tc(20))/num;
Tc(i)=(Tc0- detaTc)
Tc0=Tc(i);
i=i+1;
end
  2 件のコメント
Stephen23
Stephen23 2015 年 3 月 24 日
@stalin samuel: Note that you should avoid using i and j as loop variable names, as these are names of the inbuilt imaginary unit.

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by