Matlab批量操作子文件夹下的文件

Posted by kifish on April 27, 2018

当然也可以处理其他后缀名的文件,只需改一下’.csv’

/实验数据
    无关的文件
    ...
   /subdir1
        .csv
        ...
   /subdir2
        .csv
        ...
rootdir = '/Users/k/Downloads/实验数据';

files = dir(rootdir);
for idx = 1:length(files)
    if(isequal( files( idx ).name, '.' )||...
       isequal( files( idx ).name, '..')||...
       ~files(idx).isdir)
        %论matlab奇怪的语法,这里的files是一个结构体数组,struct有属性isdir
                 % matlab中会出现. .. 其实unix中ls -a 也会出现。
        %第1个数组元素和第2个数组元素分别是’.’和’..’,表示当前目录和上层目录。
                 %遇到文件也跳过
        continue;
    end
    %path = strcat(files(idx).folder,'/',files(idx).name);
    path = fullfile(rootdir,files(idx).name,'*.csv');
    csvfiles = dir(path);
    for  csv_idx = 1:length(csvfiles)
        csvpath  = fullfile(rootdir,files(idx).name,csvfiles(csv_idx).name);
        disp(csvpath)
    end
end

参考:https://blog.csdn.net/u012675539/article/details/43671663