我有一个巨大的 csv 文件(如:不止几场演出),想在 Matlab 中读取它并处理每个文件。完整读取文件是不可能的,因此我使用此代码读取每一行:
fileName = 'input.txt';
inputfile = fopen(fileName);
while 1
tline = fgetl(inputfile);
if ~ischar(tline)
break
end
end
fclose(inputfile);
这会产生一个大小为 (1,1) 的单元格数组,其中行作为字符串。我想要的是将此单元格转换为仅包含数字的普通数组。例如:
input.csv:
0.0,0.0,3.201,0.192
2.0,3.56,0.0,1.192
0.223,0.13,3.201,4.018
第一行在 Matlab 中的最终结果:
A = [0.0,0.0,3.201,0.192]
我尝试使用 double(tline) 转换 tline,但这会产生完全不同的结果。也尝试使用正则表达式,但卡在那里。我到了将所有值拆分到一个数组中的不同单元格中的地步。但是使用 str2double 转换为 double 只会产生 NaN ......
有小费吗?最好没有任何循环,因为读取整个文件已经需要一段时间了。