Info

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

# for loop help matlab error

1 ビュー (過去 30 日間)
B 2015 年 3 月 24 日

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 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 件のコメント表示非表示 2 件の古いコメント
Julia 2015 年 3 月 24 日
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 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 件のコメント表示非表示 1 件の古いコメント
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