位置 1 のインデックスが無効​です。配列インデック​スは正の整数または logical 値でなければなりません。

X = cat(2,Z,Y);
all = [];
all = zeros(1800000,6);
all(:,1) = 0.001:0.001:1800;
el = length(X);
for i = 2:el
a = X(i,1)/0.001;
all(a,2) = X(i,2);
end
というプログラムを実行すると、「位置 1 のインデックスが無効です。配列インデックスは正の整数または logical 値でなければなりません。」というエラーが出ます。0番目にアクセスしているわけではないのになぜこのようなエラーが出るのでしょうか?
なおall = 1800000×6 double, el = 1386で i=1の時a=1.6887e+04ですのでallの行を超えていません。

 Risposta accettata

Atsushi Ueno
Atsushi Ueno il 3 Lug 2021

1 voto

配列のインデックスはエラーの表記通り「正の整数または logical 値でなければなりません」
Xの値が不明ですが、
a = fix(X(i,1)/0.001);
等としてaの値を整数値に丸めればエラーは解消します。

1 Commento

悠真 松本
悠真 松本 il 3 Lug 2021
ありがとうございます、できるようになりました。

Accedi per commentare.

Più risposte (0)

Prodotti

Release

R2021a

Community Treasure Hunt

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

Start Hunting!