使用MATLAB遍历文件

使用MATLAB遍历文件

最近在使用MATLAB做数据处理时,发现MATLAB在文件上的处理并不像python一样方便,但也还是支持文件操作的,下面的代码参考自mathwork官方文档 https://ww2.mathworks.cn/help/matlab/file-operations.html

直接上代码

在’E:/matlabTest’路径下有testData1 - testData13共计13个文件夹,每个文件夹下都有一个test.mat数据,需要做的是从上述文件夹中load test.mat进行处理后保存到’E:/matlabTest2’路径下。

dir_path = 'E:\matlabTest'; %输入路径
save_dir = 'E:\matlabTest2'; %输出路径
fileFolder=ls(dir_path); %列出路径下所有的文件
for i=3:15 %去掉前两个元素,注意matlab的数组index从1开始
    file_path = strcat(dir_path,strtrim(fileFolder(i,:)),'test.mat');
    load(file_path);
    mkdir(strcat(save_dir,strtrim(fileFolder(i,:)))) %创建新的文件夹
    file_name = strcat(save_dir,strtrim(fileFolder(i,:)),'test.mat');
    save(file_name,'data','-v7.3'); %保存文件
end

文件结构

在’E/matlabTest’文件夹中一共有13个文件夹,要做的事遍历这些文件夹,同时拿到这13个文件夹中的所有文件。
使用MATLAB遍历文件_第1张图片

遍历某个路径下的所有文件

path = 'E:/matlabTest'
files = ls(path)

在这里插入图片描述

使用ls命令,会输出以下内容,输出的是一个str类型的数组,并且数组的前两个元素是 . 和 … ,如果进行处理的时候最好检查一下输出数组中是不是所需的内容。

!注意事项!

  1. 因为MATLAB本身语法的特性,文件数组中的名称长度都是一样的(名称最长文件的长度),如果名称比较短的文件名会在数组中用空格补齐,所以如果需要处理的话就需要去除名称中的空格,使用 strrtim 命令。
  2. MATLA数组下表是从1开始的,并不是从0。

你可能感兴趣的:(matlab)