我正在尝试从非常大的混合值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
如何调试冻结问题?任何替代方法?
答案 0 :(得分:0)
我找不到解决这个问题的真正办法。 csvread()应该有帮助,但由于csv文件同时具有字符串和数值,因此它并不真正有用。在disp(x)之后添加clearvars()解决了一段时间的问题但又开始出现问题。
最后我的解决方案是使用Matlab中的向导导入csv数据。可能需要几分钟,但一旦完成,就将导入的变量存储到.mat文件中。我们可以在需要的时间内加载它。