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

21 ビュー (過去 30 日間)
悠真 松本
悠真 松本 2021 年 7 月 3 日
コメント済み: 悠真 松本 2021 年 7 月 3 日
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の行を超えていません。

採用された回答

Atsushi Ueno
Atsushi Ueno 2021 年 7 月 3 日
配列のインデックスはエラーの表記通り「正の整数または logical 値でなければなりません」
Xの値が不明ですが、
a = fix(X(i,1)/0.001);
等としてaの値を整数値に丸めればエラーは解消します。
  1 件のコメント
悠真 松本
悠真 松本 2021 年 7 月 3 日
ありがとうございます、できるようになりました。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

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

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!