textscan()无法访问大文件

时间:2015-09-01 04:03:46

标签: matlab machine-learning

我正在尝试从非常大的混合值csv文件导入数据。我的下面的代码没有textscan()就可以正常工作。但是使用textscan()它会在随机点冻结。

function untitled3()
    fileName='TestNetworkData.csv';
    fid=fopen(fileName);
    while(1)
       str=fgetl(fid);
       disp(str);
       if(str==-1)
           break;
       end
       x = textscan(str,'%d %n %s %s %s %[^\n]s', 'delimiter', '", ', 'MultipleDelimsAsOne', 1);
       disp(x);
    end

end

如何调试冻结问题?任何替代方法?

1 个答案:

答案 0 :(得分:0)

我找不到解决这个问题的真正办法。 csvread()应该有帮助,但由于csv文件同时具有字符串和数值,因此它并不真正有用。在disp(x)之后添加clearvars()解决了一段时间的问题但又开始出现问题。

最后我的解决方案是使用Matlab中的向导导入csv数据。可能需要几分钟,但一旦完成,就将导入的变量存储到.mat文件中。我们可以在需要的时间内加载它。