2013-04-26 85 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