使用MATLAB提取文本文件txt text中指定行的数据 数值 指定内容的数值
程序员文章站
2022-04-15 22:14:48
...
需要提取590行的最后一个数值,用作分析建模作用,matlab实现代码如下。
1. 提取该行的数据保存为文字数组
name = textFileName;
fidin = fopen(name,'r');
nline = 0;
while ~feof(fidin)
tline = fgetl(fidin);% read the text file by rows
nline = nline + 1;
if nline == geo_line % ensure the correct rows can be find and extract
geo = tline;
end
if nline == tex_line
tex = tline;
end
end
这里将geo_line tex_line设置为想要提取的行数即可,输出结果geo tex便是指定行的文本内容。
2. 利用正则表达式将文本内容中的数值数据提取出来
geo_valuses = regexp(geo,'\d*\.?\d*','match');% extract numbers in string 正则表达式
tex_valuses = regexp(tex,'\d*\.?\d*','match');
geo_psnr = geo_valuses{end};
tex_psnr = tex_valuses{end};
geo_values便是含有六个元素的元胞数组,其中最后一个便是需要的数据,但是是以文本类型表示的,根据需要可进行类型转换。
PS: 如果需要提取指定字段(eg 'Total Frames')也可以使用正则表达式来操作,先提取其所在行的数据再做进一步分析。
参考链接: