在matlab代码中使用for循环时出现内存不足错误
我有一个不同长度的1x46电池 我想将每个单元格归零填充到最大长度单元格,因为我想应用cell2mat函数,为了应用该函数,我需要使该单元格保持一致 但每当我运行代码时,它都会给出内存错误 最大长度为6691240,即最大长度单元格中有6691240个元素 代码如下在matlab代码中使用for循环时出现内存不足错误,matlab,out-of-memory,Matlab,Out Of Memory,我有一个不同长度的1x46电池 我想将每个单元格归零填充到最大长度单元格,因为我想应用cell2mat函数,为了应用该函数,我需要使该单元格保持一致 但每当我运行代码时,它都会给出内存错误 最大长度为6691240,即最大长度单元格中有6691240个元素 代码如下 for i=1:numel(X1) if size(X1{i}) < 6691240 X1{i}(end,6691240)=0; end end i=1时的:numel(X1) 如果大小(X1{i})
for i=1:numel(X1)
if size(X1{i}) < 6691240
X1{i}(end,6691240)=0;
end
end
i=1时的:numel(X1)
如果大小(X1{i})<6691240
X1{i}(end,6691240)=0;
终止
终止
我的理解是,每个单元格都是一个向量,每个向量的长度需要是6691240。因此,代码需要更改为:
for i=1:length(X1)
if length(X1{i}) < 6691240
X1{i}(6691240)=0;
end
end
i=1时的:长度(X1)
如果长度(X1{i})<6691240
X1{i}(6691240)=0;
终止
终止
8*46*6691240=2GB,因此,如果您至少有8GB用于进一步操作数据,则此功能应该可以正常工作。但是你有X1{I}(end,6.7M)
->如果你的X1
说了10k个元素,它现在会变成一个包含10k*6.7M个元素的矩阵,这显然太大了。是的,我知道你能提出一些可能的解决方案吗?