File 在MATLAB中导入带注释的文本文件

File 在MATLAB中导入带注释的文本文件,file,matlab,file-io,import,comments,File,Matlab,File Io,Import,Comments,从文本文件导入数据时,是否有任何字符或字符组合被MATLAB解释为注释?当它在一行的开头检测到它时,会知道所有的行都要忽略吗 我在文件中有一组点,如下所示: 正如你所看到的,他似乎不太理解他们。除了//我还有什么可以用的,MATLAB知道可以忽略的吗 谢谢 您是否尝试过MATLAB中的默认注释字符% 正如Amro所指出的,如果使用importdata,这将起作用。如果使用该函数,可以将CommentStyle参数设置为/或%。试着这样做: fid = fopen('myfile.txt'); i

从文本文件导入数据时,是否有任何字符或字符组合被MATLAB解释为注释?当它在一行的开头检测到它时,会知道所有的行都要忽略吗

我在文件中有一组点,如下所示: 正如你所看到的,他似乎不太理解他们。除了//我还有什么可以用的,MATLAB知道可以忽略的吗


谢谢

您是否尝试过MATLAB中的默认注释字符
%

正如Amro所指出的,如果使用
importdata
,这将起作用。

如果使用该函数,可以将
CommentStyle
参数设置为
/
%
。试着这样做:

fid = fopen('myfile.txt');
iRow = 1;
while (~feof(fid)) 
    myData(iRow,:) = textscan(fid,'%f %f\n','CommentStyle','//');
    iRow = iRow + 1;
end
fclose(fid);

如果每行有两个数字,那就行了。我注意到在你们的例子中,每行的数字数量是不同的。有些行只有一个数字。这代表你的数据吗?如果每行中没有统一的列数,则必须以不同的方式处理此问题。

实际上,您的数据不一致,因为每行必须具有相同的列数

1) 除此之外,使用“%”作为注释将被导入数据正确识别:

file.dat matlab 2) 否则,使用textscan指定任意注释符号:

文件2.dat matlab
我把它们放在每行2个数字上(它们总是这样),但仍然不起作用。它一次只能读一行。我修改了我的响应以读取到文件的末尾。
%12 31
12 32
32 22
%abc
13 33
31 33
%ldddd
77 7
66 6
%33 33
12 31
31 23
data = importdata('file.dat')
//12 31
12 32
32 22
//abc
13 33
31 33
//ldddd
77 7
66 6
//33 33
12 31
31 23
fid = fopen('file2.dat');
data = textscan(fid, '%f %f', 'CommentStyle','//', 'CollectOutput',true);
data = cell2mat(data);
fclose(fid);