MATLAB中如何按正则表达式提取文件中指定整行数据?
MATLAB提取指定前缀开头行的两种输出格式解决方案
前提步骤:读取文件内容
先将目标文件内容读取到MATLAB中:
fileContent = fileread('your_file.txt'); % 替换为实际文件名
方案1:输出单个字符串形式的单元格数组
提取所有以IT开头的行中,IT之后的完整数值字符串,生成每个元素为整行数值的单元格数组:
% 匹配行首的IT,捕获后续所有内容 itLinesSingle = regexpi(fileContent, '^IT\s+(.*)$', '$1', 'lineanchors', 'match'); % 去除每个字符串首尾的多余空格 itLinesSingle = cellfun(@strtrim, itLinesSingle, 'UniformOutput', false);
执行后,itLinesSingle的输出形式如下:
{'3.10000E-01 1.12000E-01 1.00000E+01'} {'3.10000E-01 1.18000E-01 0.90000E+01'} {'3.20000E-01 1.1000E-01 1.00000E+01'}
方案2:输出拆分后的二维单元格数组
将每行的数值拆分后,生成每行对应单个数值的二维单元格数组:
% 先提取IT行的数值字符串部分 itLinesRaw = regexpi(fileContent, '^IT\s+(.*)$', '$1', 'lineanchors', 'match'); % 拆分每个字符串为单独的数值单元格 itLinesSplit = cellfun(@(x) strsplit(strtrim(x)), itLinesRaw, 'UniformOutput', false); % 转换为二维单元格数组 itLinesSplit = vertcat(itLinesSplit{:});
执行后,itLinesSplit的输出形式如下:
{'3.10000E-01'} {'1.12000E-01'} {'1.00000E+01'} {'3.10000E-01'} {'1.18000E-01'} {'0.90000E+01'} {'3.20000E-01'} {'1.10000E-01'} {'1.00000E+01'}
内容的提问来源于stack exchange,提问作者ID P
相关产品推荐
相关产品推荐

