我想在matlab中读取一个文本文件,但是当我读到我想忽略一定数量的标题时,这个数字不应该被修复。然后我想开始从最后一个未删除的行再次读到一定数量的行。因此,例如,我可能想要忽略前7行并从第8行开始到下一行100行。
我怎么能轻易做到这一点?
谢谢!
答案 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
跳过它。