如何在MATLAB中读取.txt文件的特定行

  • 本文关键字:文件 txt 读取 MATLAB matlab
  • 更新时间 :
  • 英文 :


假设我有一个.txt文件,如下所示:

2
3
jack
hello
46
87
928
morning

我看到了fgetl()逐行读取数据的功能。然而,它的工作方式是,当它第一次被调用时,它会占用第一行,当它被调用第二次时,它占用第二行,然后就这样继续下去。

然而,我想做的是,阅读一行特定的内容(我可以指定(。

例如,我想先读第8行,然后读第2行和第5行。

我该怎么做?

谢谢。

以下是读取特定行的方法:

filename = 'file.txt'; % define file name
n_line = 3; % define line to read
fid = fopen(filename); % open file
result = textscan(fid, '%s', 1, 'Headerlines', n_line-1, 'Delimiter' ,''); % read line
result = result{1}; % unbox from cell
fclose(fid); % close file

如果你需要阅读几行,你可以使用如下循环:

filename = 'file.txt'; % define file name
n_lines = [3 7 4]; % define lines to read
fid = fopen(filename); % open file
result = cell(1,numel(n_lines));
for n = 1:numel(n_lines)
result(n) = textscan(fid, '%s', 1, 'Headerlines', n_lines(n)-1, 'Delimiter' ,'');
frewind(fid) % set file position back to the start
end
result = [result{:}]; % unbox from cells
fclose(fid); % close file

一个快速的方法是使用正则表达式搜索:

fr = fileread('textfile.txt');
matches = regexp(fr, '[^n]*', 'match'); % 'matches' will be a cell array.  regexp search for '[^n]*' returns elements separated by newline characters.
% Lines 8, 2, and 5:
matches{8}
matches{2}
matches{5}

相关内容

  • 没有找到相关文章

最新更新