Matlab では、次の構造体フィールドを持つ P という名前の構造体の 1x30 配列を事前に割り当てたいと考えています。
imageSize: [128 128]
orientationsPerScale: [8 8 8 8]
numberBlocks: 4
fc_prefilt: 4
boundaryExtension: 32
G: [192x192x32 double]
G は必ずしも 192x192x32 である必要はなく、たとえば 128x128x16 である可能性があります (ただし、double 型の 3 つの次元があります)。
次の方法で事前割り当てを行っています。
P(30) = struct('imageSize', 0, 'orientationsPerScale', [0 0 0 0], ...
'numberBlocks', 0, 'fc_prefilt', 0, 'boundaryExtension', 0, 'G', []);
これはそのような構造体を事前に割り当てる正しい方法ですか、または G が空の [] に設定されていることに関連するパフォーマンスの問題がありますか? この構造を割り当てるより良い方法がある場合は、例を提供してください。
また、上記のアプローチは機能しているように見えますが (パフォーマンスの問題は別として)、フィールド名/値のペアの順序は重要なようです。それらを再配置すると、事前割り当て後の割り当て時にエラーが発生するためです。項目/値が (位置ではなく) 名前で参照されるのはなぜですか?