2013-04-26 158 views
1

我的问题是如何使用MATLAB来搜索文件夹中的某种类型的文件。我举一个例子来详细讨论我的问题:使用MATLAB搜索文件

假设我们有以下文件夹中的文件以及它:

My_folder 
    Sub_folder1 
     Sub_sub_folder1 
       a.txt 
     1.txt 
     2.txt 
    Sub_folder2 
     3.txt 
    abc.txt 

在这个例子中,我想找到所有.txt文件My_folder以及作为其子文件夹。我想知道我能用MATLAB做什么。谢谢!

+5

不要坐在那里想知道!阅读文档! – 2013-04-26 08:59:30

+4

不知道为什么这会得到如此多的反对票和关闭,似乎是相当合理的,毕竟在python中的答案相当平凡(类似于:glob('* .txt')'),并且Matlab文档可能有点难以遵循(例如,有些东西不是人们所期望的nesc) – 2015-01-05 23:57:25

回答

5

据我所知Matlab没有内置函数来执行递归目录搜索,但是有一对夫妇可以在Matlab Central上下载:herehere

或者,您可以编写自己的递归函数,并使用dir函数在每个级别上搜索与您的criterea或其他目录匹配的文件以进行递归。

1

我同意MATLAB中心选项 - 当MLC不是一个选项(没有网络或客户计算机等)是快速和肮脏的DOS命令我已经用另一种方法:

dos(['dir /s/b ' mywildcard]) 

/s将执行递归目录搜索您指定的任何通配符,并且/ b将使其只能获取文件名(完整将完整路径,但不包含标头,文件大小等)。

这显然取决于平台,所以当你被迫在没有你已经积累的“标准”工具集的情况下工作时,主要用到它。

+0

如果你想使用这种方法,仍然需要一定的跨平台能力,你可以为windows和unix编写版本,然后根据值进行切换''getenv('os')'或'computer('arch')'调用。 – Alan 2013-04-26 11:01:36

0

即使答案已被接受,我想指出Matlab的dir函数。
此内置函数返回相关文件夹的内容。此外,它指示哪个内容是它自己的文件夹。因此,用一个小循环可以使用这个函数来搜索子目录。

+0

或检查[this](http://stackoverflow.com/questions/2652630/how-to-get-all-files-under-a-specific-directory-in-matlab)响应。 – Schorsch 2013-04-26 14:22:56