在 Matlab 中,我希望预先分配一个名为 P 的 1x30 结构数组,其中包含以下结构字段:
imageSize: [128 128]
orientationsPerScale: [8 8 8 8]
numberBlocks: 4
fc_prefilt: 4
boundaryExtension: 32
G: [192x192x32 double]
G 不一定是 192x192x32,例如它可能是 128x128x16(尽管它有 3 个双精度类型的维度)。
我正在通过以下方式进行预分配:
P(30) = struct('imageSize', 0, 'orientationsPerScale', [0 0 0 0], ...
'numberBlocks', 0, 'fc_prefilt', 0, 'boundaryExtension', 0, 'G', []);
这是预分配这种结构的正确方法,还是会出现与 G 设置为空 [] 相关的性能问题?如果有更好的方法来分配这个结构,请提供一个例子。
此外,上述方法似乎有效(除了性能问题),但是,字段名称/值对的顺序似乎很重要,因为重新排列它们会导致在预分配后分配错误。为什么如此考虑到项目/值是按名称(而不是位置)引用的?