cell配列でのデー​タ格納が複雑になって​しまい,取り出しに難​儀しています.複雑な​データを格納する方法​を教えて下さい.

6 views (last 30 days)
Tadafumi Sugi
Tadafumi Sugi on 14 Feb 2024
Commented: Tadafumi Sugi on 15 Feb 2024
セル配列(20×20cell)
→セル配列(2×10cell)
→セル配列(5×2cell)
→数値配列(n×1double)
のようにとても複雑なデータの保存の仕方をしています.
取り出しに難儀しています.データのサイズも3GB程と大きくなっています.
セル配列と構造体配列以外を組み合わせるべきでしょうか?参考となる配列のデザインを教えてください.
よろしくお願いします.

Accepted Answer

Kojiro Saito
Kojiro Saito on 15 Feb 2024
確かにセルと構造体はメモリーをより多く使用します。
cell 配列は、各要素に対する別々の mxArrays で構成されます。このため、多くの小さな要素をもつ cell 配列ではオーバーヘッドが大きくなります。
構造体では、フィールドごとにほぼ同量のオーバーヘッドが必要です。多くのフィールドと小さなコンテンツをもつ構造体は、オーバーヘッドが大きくなるので避けるようにします。数値スカラー フィールドをもつ構造体の大規模な配列では、大規模な数値配列を含むフィールドをもつ構造体よりも、多くのメモリが必要です。
ただ、n=100でダミーデータで検証しましたが、セル配列は元の行列*20*20*2*10*5*2の14%増ぐらいなので、セル配列や構造体を違うデータ型にすることでそれほどメモリー使用量には影響ないように思えます。
取り出しを楽にするには階層を少なくして新しい変数に割り当てて、元の変数をclearするなどの方法が考えられます。
  1 Comment
Tadafumi Sugi
Tadafumi Sugi on 15 Feb 2024
ありがとうございます.
大変,参考になりました.

Sign in to comment.

More Answers (0)

Categories

Find more on Multidimensional Arrays in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!