读取文本文件时忽略一定数量的行

时间:2014-07-25 08:47:38

标签: matlab text import

我想在matlab中读取一个文本文件,但是当我读到我想忽略一定数量的标题时,这个数字不应该被修复。然后我想开始从最后一个未删除的行再次读到一定数量的行。因此,例如,我可能想要忽略前7行并从第8行开始到下一行100行。

我怎么能轻易做到这一点?

谢谢!

2 个答案:

答案 0 :(得分:1)

假设您有一个文本文件data.txt,其中N_header个标题行数包含每行5个整数,并且您想从此文件中读取N_lines。

首先创建一个指向该文件的链接,以便MatLab知道您需要哪个文件:

FID = fopen('data.txt') % Create a file id

现在,您可以使用textscan读取N_lines行并跳过N_header标题:

N_header = 7;
N_lines = 100;

formatSpec = '%d %d %d %d %d'; % Five integers per row seperated by whitespace
C = textscan(FID,formatSpec,N_lines,'HeaderLines',N_header);

fclose(FID)

文本文件中的列存储在C {列号}中。如果你想让每一行存储在C中,请使用:

formatSpec = '%s'; % The whole string, i.e. each line
C = textscan(FID,formatSpec,N_lines,'delimiter','\n','HeaderLines',N_header); % Up to the line end '\n'

哪个存储单元格数组C中的每一行。

答案 1 :(得分:0)

使用逐行读取的功能:

http://www.mathworks.com/help/matlab/ref/fgetl.html

http://www.mathworks.com/help/matlab/ref/fgets.html

如果您循环阅读,只要您到达不需要的行,只需使用continue跳过它。