MATLAB批量分割txt数据

之前跑了一遍数据(1.txt 2.txt 3.txt ......64.txt),发现中间是没有8.txt的,并且读入路径的排序是(1.txt 10.txt 11.txt ......),只用i和j命名的话顺序全都串了,想按照对应关系批量改名字没弄出来,不如重新跑一遍好了,把路径名字的第【1】位到【长度-4】位(把.txts四个字符去掉)+'_'+'j'作为切割后文件的名字,就可以一一对应,不会串了。代码如下:

clc
clear
file=dir('E:\自动化所实习\小数据备份\*.txt');%file的顺序是串的
%fs=2000000;%采样频率
%kk=0;
for i=1:length(file);%遍历每个文件
    zz= load(['E:\自动化所实习\小数据备份\',file(i).name]);%加载进来自动去掉空列
    [m,n]=size(zz);%m行n=4列
    newfilen=floor(m/39);%每个文件大小:行数/39再向下取整
        for j=1:39
            zz_new=zz((newfilen*(j-1)+1):newfilen*j,:);
            %file(i).name(1:length(file(i).name)-4)%%提出文件实际的名字,不带后缀的
            filenm=[file(i).name(1:length(file(i).name)-4) '_' num2str(j) '.txt'];
            save(['E:\自动化所实习\小数据备份\',filenm],'zz_new','-ascii');
         end
end

你可能感兴趣的:(MATLAB,自动化所,批量数据分割)