Clear Filters
Clear Filters

配列サイズの取得

8 views (last 30 days)
遥 荻津
遥 荻津 on 7 Jul 2023
Commented: 遥 荻津 on 10 Jul 2023
同じ配列のサイズが場所によって変わります。size(In)と画面に出力されるサイズは13243、ワークスペースに表示されるものとインデックスに入れられる最大数は12898です。原因がわからないので教えていただきたいです。

Accepted Answer

Kenjiro Sugimoto
Kenjiro Sugimoto on 7 Jul 2023
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 Comment
遥 荻津
遥 荻津 on 10 Jul 2023
なるほど。確かにそうなりますね! 返答ありがとうございます。

Sign in to comment.

More Answers (0)

Categories

Find more on データ型の変換 in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!