Matlab Matab:将某些行从文本文件复制到另一个文件

Matlab Matab:将某些行从文本文件复制到另一个文件,matlab,append,text-files,extract,Matlab,Append,Text Files,Extract,我有300个类似结构的文件。 我对每个文件的第82行和第90行感兴趣 第82行是: 跨度1=-0.193,1.980 第90行是: 跨度9=0.000557.000 我希望将第82行和第90行中的最后一个数字彼此相邻复制,并从每个文件中附加这些值,如下所示: 输出文件: 1.980 557.000 2.568687.500 1.158 496.030 有人能帮我吗?如果我可以将82行和90行复制到新文件中,并将其下的其他行复制到新文件中,也可以这样做: 跨度1=-0.193,1.980 跨度9

我有300个类似结构的文件。 我对每个文件的第82行和第90行感兴趣

第82行是:
跨度1=-0.193,1.980

第90行是:
跨度9=0.000557.000

我希望将第82行和第90行中的最后一个数字彼此相邻复制,并从每个文件中附加这些值,如下所示:

输出文件:

1.980 557.000
2.568687.500
1.158 496.030

有人能帮我吗?如果我可以将82行和90行复制到新文件中,并将其下的其他行复制到新文件中,也可以这样做:

跨度1=-0.193,1.980
跨度9=0.000557.000

跨度1=-0.193,2.568
跨度9=0.000687.500

跨度1=-0.193,1.158
跨度9=0.000496.030

我们可以使用
标题行
跳转到所需的行

格式规范
span%d=%f,%f
告诉
textscan
给我们
{1}
中的span id和
{2}
{3}
中的span值。它假设第82行和第90行严格按照问题中的描述进行格式化(即,
span x=y,z

此代码扫描一行两次(首先在第82行,然后在第90行)。或者,您也可以扫描9行(一次扫描82-90行),然后索引到这9行

row1=82;%第1排
第9行=90;%第9排
files=dir('/path/to/data/*.dat');%更改为实际路径
结果=nan(长度(文件),2);%预分配
for file=文件
fpath=fullfile(file.folder,file.name);
fid=fopen(fpath);
格式='span%d=%f,%f';%假设'span x=y,z`
lines=1%扫描一行两次(我们也可以一次扫描9行并对输出进行索引)
span1=文本扫描(fid,格式,行,“标题行”,第1-1行);
span9=文本扫描(fid,格式,行,“标题行”,第9行-第1行);
如果(span1{1}==1)&&(span9{1}==9)%验证span id
结果(1,:)=[span1{3}span9{3}];
结束
fclose(fid);
结束
csvwrite('result.csv',result);

对于sed等shell命令来说,这听起来是一个完美的工作。您是否严格需要在MATLAB中处理这些文件,而不使用系统程序?谢谢!您是否知道如何修改此代码以处理文件夹中的所有dat文件(*.dat)?我有300个文件,格式都很相似。不客气。我用一种从磁盘读取文件的方法编辑了答案。注意带有
files=dir(…)
fpath=fullfile(…)