我有几个fints,我如何预先分配一个单元格数组,以便我可以在以后循环它们?我真的不在乎它们是作为单元格数组或数组存储还是存在任何不同的东西,我只是希望能够执行以下操作
for(i = 1:size(stocks))
figure(i);
plot(stocks(i));
end
或类似的东西。使用stocks = 0(0,5)进行分配首先效果很好,但是当我尝试插入fints时它不起作用,因为假设它是双精度。您如何为财务时间序列项目预先分配数组?因为每次插入新的长度都会有不同的长度。
答案 0 :(得分:3)
来自Matlab的Preallocate Memory for a Cell Array
上的文档单元格数组不需要完全连续的内存。但是,每一个 单元格需要连续的内存,单元格数组标题也是如此 MATLAB®创建用于描述阵列。对于非常大的阵列, 逐步增加单元格数或元素数量 在单元格中会导致内存不足错误。
通过调用单元格函数或通过分配来初始化单元格数组 到最后一个元素。例如,这些陈述是等价的:
C = cell(25,50); C{25,50} = [];
MATLAB为a创建标题 25乘50的单元阵列。但是,MATLAB不为其分配任何内存 每个细胞的内容。