从文本文件中读取特定数据并使用Matlab绘制它

时间:2014-04-28 12:54:32

标签: matlab text

我有一个包含以下数据的文本文件:

2n10
B127 mg/dL  01:45 pm 3 of January
E83 mg/dL  10:03 am 3 of January
H97 mg/dL  11:05 pm 2 of January
K80 mg/dL  06:00 am 3 of January
P118 mg/dL  08:15 am 3 of January
S97
S80
S118
S81
S87
S85
S89
S82
S83
S127
a

我想从这个文本文件中读取一些(指定的)数据然后绘制它。 我想要阅读和绘制的数据是:

S97
S80
S118
S81
S87
S85
S89
S82
S83
S127

我该怎么做?

提示:

  • 档案的第一部分:

    2n10
    B127 mg/dL  01:45 pm 3 of January
    E83 mg/dL  10:03 am 3 of January
    H97 mg/dL  11:05 pm 2 of January
    K80 mg/dL  06:00 am 3 of January
    P118 mg/dL  08:15 am 3 of January
    

    总是由六行组成,所以我实际想要读取的第一行和绘图从第七行开始。

  • 文件的第二部分(我想阅读并绘制)可能包含任意数量的行,但每行以字符S开头,文件末尾始终以字符{{标记1}}。

请帮帮我^ _ ^

谢谢和最诚挚的问候。

1 个答案:

答案 0 :(得分:0)

解决方案可能就是这个:

fid = fopen('test.txt');

tline = fgets(fid);
while ischar(tline)
    parts = textscan(tline, 'S%d');
    if numel(parts{1}) > 0
        disp(['S' num2str(parts{1}) ])
    end
    tline = fgets(fid);
end

fclose(fid);

基本上,它会打开文件并搜索格式为

的行
  

S<数字>

对于这些行中的每一行,它会扫描数字并打印不带换行符的字符串。

希望这有帮助。