配列サイズの取得

82 ビュー (過去 30 日間)
遥 荻津
遥 荻津 2023 年 7 月 7 日
コメント済み: 遥 荻津 2023 年 7 月 10 日
同じ配列のサイズが場所によって変わります。size(In)と画面に出力されるサイズは13243、ワークスペースに表示されるものとインデックスに入れられる最大数は12898です。原因がわからないので教えていただきたいです。

採用された回答

Kenjiro Sugimoto
Kenjiro Sugimoto 2023 年 7 月 7 日
127行目時点での In のサイズは確かに 13243x1 ですが、128行目からのfor文の中で In の長さが短くなっているものと予想します。特に気になる点は137行目のif文の処理で、ここで In のg番目が除去されています。この処理が複数回呼び出されることで、Inのサイズが 12898x1 まで短くなっていませんでしょうか。
以下のコードですと、除去の挙動がわかりやすいかと思います。
data = [1 2 3 4 5]
data = 1×5
1 2 3 4 5
size(data)
ans = 1×2
1 5
data(3) = [] % 3番目の要素を除去
data = 1×4
1 2 4 5
size(data)
ans = 1×2
1 4
  1 件のコメント
遥 荻津
遥 荻津 2023 年 7 月 10 日
なるほど。確かにそうなりますね! 返答ありがとうございます。

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

その他の回答 (0 件)

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!