首页 > 解决方案 > 在 matlab 代码中使用 for 循环时出现内存不足错误

问题描述

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

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

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

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

代码如下

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

标签: matlabout-of-memory

解决方案


我理解的方式是每个单元格都是一个向量,每个这样的向量的长度需要为6691240。因此,代码需要更改为:

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

推荐阅读