从非矩形文本文件中选择和打印特定行(在MATLAB中)

时间:2014-01-20 18:59:21

标签: matlab select printing row text-files

希望有人可以帮助我,因为我即将完成一个程序,但我的文本文件格式有问题。

我的文字文件很大。我在这里粘贴前9行(注意这是一个包含数字和字符串数据的非矩形文本文件):

AFH,98.3,76.4,D,2,56.3,H

TYU,65.2,K,47,I

UJK,67.5,J

AFH,65.5,56.5,L,8,34.1,P

TYU,56.2,S,97,T

UJK,88.5,J

AFH,32.1,11.4,G,4,45.6,F

TYU,22.8,D,37,U

UJK,78.3,Z

整个文本文件中我需要的唯一数据是以'AFH'开头的行。我需要管理只读这些特定的行并将它们写在一个新的文本文件中,这样我就可以使用这个最后一个文本文件作为输入来运行我的程序的其余部分。

我找不到任何方法可以只选择我的'AFH'行在新文本文件中打印它们。

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用fgetl逐行读取文件并忽略不相关的行。

myText = cell(1,N);

tline = fgetl(fid);                % Read first line
while ischar(tline)                % Keep going til the end of the file
    if strcmp(tline(1:3),'AFH')    % Check if it starts with 'AFH'
        myText{end+1} = tline;     % Save the line in cell array  
    end
    tline = fgetl(fid);            % Read the next line
end