MATLAB Answers

配列インデックスのエラーメッセージについて

544 views (last 30 days)
kazuma kaneda
kazuma kaneda on 27 Oct 2019
Commented: Yoshio on 28 Oct 2019
下記のようなプログラムで、エラーメッセージが出ます。どのように直せば良いですか。
>> x=2*pi*(0:0.001:1);
>> tic
>> for j=0:0.0001:1
y1(j)=cos(x(j));
end
配列インデックスは正の整数または logical 値でなければなりません。
>> time1=toc

  0 Comments

Sign in to comment.

Accepted Answer

Yoshio
Yoshio on 27 Oct 2019
Edited: Yoshio on 27 Oct 2019
MATLABAの配列は、Cと異なりインデックスは1から始まりますので、配列xの最初の要素はx(1)です。
このため、for文でx(0)を参照したため、エラーとなっています。
以上を参考にコードを見直してみてください。
なお、MATLABの強みは、関数の入力として、ベクトルや行列を扱うことができることです。
forを使ったコードができたら、forを使わないで計算する方法も検討してみてください。

  2 Comments

kazuma kaneda
kazuma kaneda on 27 Oct 2019
ありがとうございました。無事に、実行できました。
Yoshio
Yoshio on 28 Oct 2019
一点追加ですが、エラーメッセージの意味ですが、
配列インデックスは正の整数
ですので、j=0:0.0001:1でx(j)は「配列のインデックス指定が正の整数」ではないので、
x(0)を参照したエラーとx(0.0001) の両方を回避する必要があります。x(0)だけではありませんのでご注意ください。

Sign in to comment.

More Answers (0)