许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  使用MATLAB遍历文件夹内所有文件:dir函数递归实现

使用MATLAB遍历文件夹内所有文件:dir函数递归实现

阅读数 6
点赞 0
article_banner

使用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。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空