インデックスの変更で​​、変数の値が変更さ​れ​る理由がわからず​困っ​ています。

3 ビュー (過去 30 日間)
kN
kN 2022 年 2 月 8 日
コメント済み: kN 2022 年 2 月 8 日
インデックスの変更で​、変数の値が変更され​る理由がわからず困っ​ています。xの配列数​を増やすとエラーがな​くなります。最初に準​備すると配列数との関​係をどなたか教えてい​ただけないでしょうか​。実行すると、以下の​エラーが発生します。​”インデックスが配列​要素数 (12) を超えています。 エラー: p7_1_4 (line 10) F=x(ind); ”。
x=(1:12)*2;
ind=[1 3 5 7 9 11;2 4 6 8 10 12;3 5 7 9 11 13];
F=x(ind);

採用された回答

Atsushi Ueno
Atsushi Ueno 2022 年 2 月 8 日
数を減らして分かりやすく提示します。
x=(1:4)*2
x = 1×4
2 4 6 8
ind=[1 3;2 4]
ind = 2×2
1 3 2 4
F=x(ind) % xの1番目、2番目、3番目、4番目の数値がindの配置通りに選択される
F = 2×2
2 6 4 8
ind=[1 3;2 4; 3 5]
ind = 3×2
1 3 2 4 3 5
F=x(ind) % xの5番目(未定義)にアクセスしようとしたのでエラーが出る
Index exceeds the number of array elements. Index must not exceed 4.
  5 件のコメント
Atsushi Ueno
Atsushi Ueno 2022 年 2 月 8 日
indのインデックスがxのインデックスになる訳ではありません。
indの値自体がxのインデックスになります。
kN
kN 2022 年 2 月 8 日
ご説明ありがとうございました。
勘違いしているポイントが分かりました。

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

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange行列および配列 についてさらに検索

Community Treasure Hunt

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

Start Hunting!