使用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个文件夹中的所有文件。
在这里插入图片描述

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

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

在这里插入图片描述

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

!注意事项!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值