我正在尝试使用textscan读取csv文件。这些字段用','分隔。我使用了以下代码,但它只将一行数据读入矩阵W。
我也尝试过dlmread(),它的字段数量错误。
该文件在linux下构建,matlab在linux下。
file_id = fopen('H:\data\overlapmatrices\cos.mat.10');
W = textscan(file_id, '%f', 'delimiter', ',' , 'EndOfLine', '\r\n');
fclose(file_id);
clear file_id;
答案 0 :(得分:1)
问题可能在于如何在文件中表示行尾(另请参阅维基百科上的this article)。虽然\r\n
(回车符和换行符的组合)在Windows上很常见,但\n
(只是换行符)是Linux和其他Unix系统的标准。
但正如Ben所说,csvread
可能是一种更简单的方法来阅读文件。
答案 1 :(得分:1)
你可能想尝试csvread
,它应该可以解决问题。
或者你总是可以做一些像
这样的脏话fid = fopen( filename );
tline = fgetl(fid);
while ischar(tline) %or some other check
%sscanf(tline...
tline = fgetl(fid);
end