MATLAB中批量从txt文件中读取指定行的数据保存为txt文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaomengszu/article/details/78696870



经常遇到,我们想要读取的数据,不是从头开始读取的,我们往往要求从固定的行开始读取,MATLAB代码如下:


function readData()
%从指定行开始读取数据
readFilePath='C:\Second_teeth\data\di_tance\Diff_distance\10\textfiel\Zm\*.txt';
readPathStr='C:\Second_teeth\data\di_tance\Diff_distance\10\textfiel\Zm\';
%savePathStr='D:\data\tooth\seg_small_txtfile\Zm\';  %d3是没有滤波的 d2是滤过的  70-80\
savePathStr='C:\Second_teeth\data\di_tance\Diff_distance\qiefen_1\Zm\';
fileList=dir(readFilePath);
fileNum=length(fileList);
for j=1:fileNum
      name=fileList(j).name;      %获得cell数据中的name列 也就是完整的文件名字  Zhao-zhang Syam LWF  Su
    splitName=strsplit(name,'.');  %在.处截取.前面的字符串
    varStr = splitName{1};
    %dirname = [savePathStr,varStr,'\'];
    a = ['mkdir ' savePathStr];  %mkdir是一个判断文件夹的函数。没有创建,有的话就是一个警告不是错误
    system(a); %执行外部命令
    fileName=strcat(readPathStr,name);%这个语句 就是获得了这个文件的完整路径
    
    fid=fopen(fileName,'r');
if fid<0
    warndlg('打开文件失败!');
    return;
else
   FormatString=repmat('%f ',1,1);
   out =cell2mat(textscan(fid,FormatString,1202,'HeaderLines',601)); %从601行开始读取1202*1的矩阵数据
   newStr=[savePathStr,int2str(j),'.txt'];
   dlmwrite(newStr,out,'-append');
end
 msgbox('文件读取成功!');
 if fclose(fid)==0
     msgbox('文件关闭成功!');
 else 
     warndlg('关闭文件失败!');
 end
    
    
end




展开阅读全文

没有更多推荐了,返回首页