0

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

2 回答 2

1

您可能想尝试csvread,它应该可以解决问题。

或者你总是可以做一些肮脏的事情,比如

fid = fopen( filename );
tline = fgetl(fid);
while ischar(tline) %or some other check
    %sscanf(tline...
    tline = fgetl(fid);    
end
于 2014-02-24T13:34:32.123 回答
1

问题可能在于文件中行尾的表示方式(另请参见维基百科上的这篇文章)。虽然\r\n(回车和换行符的组合)在 Windows 上很常见,但\n(只是换行符)是 Linux 和其他 Unix 系统上的标准。

但正如本所说,csvread可能是一种更简单的读取文件的方法。

于 2014-02-24T13:31:13.083 回答