Importdata内存不足错误

时间:2016-08-22 20:59:12

标签: matlab

我遇到的问题是importdata抛出了#34; Out of Memory。可能的原因是程序中的无限递归。"错误。我之前已经能够在同一个文件上使用该命令而没有任何问题,但是现在我在一个函数中使用它后会间歇性地使用它。

要插入的CSV:516行,14403列(29 mb文件大小)数据是2列文本2-5个字符长和14401个整数列。

要导入的脚本:

testdata = importdata('filename.csv') 

自定义函数(读取文件,告诉我数据中重复的位置,并使用摘要吐出输出:

function [] = evaldata(filename)

testdata=importdata(filename);
a = cellstr(testdata.textdata);
b = strncmp('I',a,2);
c = find(b(:,2));
d = c(2) - c(1);
e = length(a);
f = a(1:1:d,2);
str = strjoin(f,', ');
fprintf('\nFile %s has %d rows, with %d unique channels(%s).\n',file,e,d,str)

当我运行内存时,我看到8115 mb RAM可用,MATLAB使用1160 mb,最大可能阵列4194 mb。我无法想象这个importdata函数正在生成足够的数据来耗尽内存。

clearall,inmem / pack等所有人都没有帮助。

最终,我需要扩展以在多达50-100个文件上运行许多任务,就像上面提到的那样。

如果有人了解为什么会产生此错误或如何调整我的代码以优化数据管理,我将不胜感激。

编辑: 重启后,我可以成功运行我的importdata命令。内存测试显示相同的内存量。在运行具有importdata命令的函数后,我似乎得到了这个错误。

testdata=importdata('1373.csv');完美的,然后:

evaldata('1373.csv')

内存不足。可能的原因是程序中的无限递归。

importdata出错(第3行) ekgdata = IMPORTDATA(文件名);

0 个答案:

没有答案