为什么文本只能读一行

时间:2014-02-24 13:11:11

标签: matlab textscan

我正在尝试使用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;

2 个答案:

答案 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