我怎么能递归过程文件的子目录使用MATLAB ?

157(30天)
我怎么能递归过程文件的子目录使用MATLAB ?
我有文件位于多个子目录中的一个目录。我希望能够处理数据在每个子目录中使用相同的功能。我怎么能这么做,而不必手动运行代码在每个目录吗?

接受的答案

MathWorks支金宝app持团队
MathWorks支金宝app持团队 2023年5月12日下午4
编辑:MathWorks支金宝app持团队 2023年5月12日13:11
第一个任务是获得所需的所有文件的列表中所有的子目录。
一种选择就是使用系统调用来访问操作系统递归目录搜索调用。例如把所有”。在“m”文件C: \ Program files \ MATLAB”窗口:
baseDir =“C: \“程序文件”\ MATLAB的
(地位、列表)=系统(“dir / s / b”baseDir“* m”]);
这产生一个不同的输出格式“dir”,但它可以解析执行相同的任务。
另一个选择是过程文件的目录层次结构通过使用递归函数。一般的格式是:
1)调用递归函数与一个目录的名称。
2)使用“dir”功能来获得一个目录清单。
3)遍历清单中的条目。
4)如果一个条目是一个目录,然后递归地调用该函数,通过子目录的名称作为目录的过程。
5)如果一个条目不是一个目录,然后保存文件路径包括文件名。
请在MATLAB中找到一个例子文件文件交换提交“子目录”:
或文件交换的示例文件“rdir”:
注意MathWorks不担保或保证这些提交的使用或内容。任何问题,问题,或抱怨应该指向特约作者。
一旦收集的文件列表通过这些方法之一,可以处理的文件。

答案(1)

lvn
lvn 2020年3月11日
是时候Matlab更新的一些官方答案,因为许多都是过时的。
这是一个例子,R2016b,不需要外部工具:
文件= dir (“C: \ temp \ * * \ * . txt”);
k = 1:长度(文件)
fn = fullfile(文件(k)。文件夹、文件(k) . name);
%程序文件fn在这里
结束

类别

找到更多的在搜索路径帮助中心文件交换

标签

下载188bet金宝搏


释放

R2014a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!