您的位置:首页 > 编程语言 > MATLAB

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

2017-12-02 16:56 751 查看
经常遇到,我们想要读取的数据,不是从头开始读取的,我们往往要求从固定的行开始读取,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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab 数据