在 matlab 代码中使用 for 循环时出现内存不足错误

Out of memory error while using for loop in a matlab code

我有一个 1x46 的不同长度单元格。

我想将每个单元格置零到最大长度单元格,因为我想应用 cell2mat 函数,为了应用它,我需要使这个单元格保持一致。

但是每当我 运行 我的代码出现内存错误时。

最大长度为 6691240 即最大长度单元格中有 6691240 个元素

代码如下

for i=1:numel(X1)
  if size(X1{i}) < 6691240
  X1{i}(end,6691240)=0;
  end
end

我的理解是每个cell是一个vector,每个vector的长度需要是6691240,所以代码需要改成:

for i=1:length(X1)
    if length(X1{i}) < 6691240
        X1{i}(6691240)=0;
    end
end