2014-02-24 74 views
0

對於每個人,我都有一個包含4個不同文件的文件夾。假設有3是個人,我想創建一個正則表達式返回按以下順序文件:如何在MATLAB中使用正則表達式排序文件

path/to/individual1/a_01.txt 
path/to/individual2/a_01.txt 
path/to/individual3/a_01.txt 
path/to/individual1/a_02.txt 
path/to/individual2/a_02.txt 
path/to/individual3/a_02.txt 
path/to/individual1/a_03.txt 
path/to/individual2/a_03.txt 
path/to/individual2/a_03.txt 
path/to/individual1/a_04.txt 
path/to/individual2/a_04.txt 
path/to/individual3/a_04.txt 

有了三個人是不是手工做的問題,但是當有很數百個,更自動化的方式來做到這一點會很方便。

我想我將不得不選擇a_01.txta_02.txta_03.txt第一每一個人:

f = dir('path/to/individual1/') 
f1 = regexp({f.name},'a_0[1-3].txt','match') 
f2 = [f1{:}] 

,並重復此爲其他個體。但是,我怎麼能達到上述的預期結果?

回答

1

只是將它擴展到個人的。

individual[1-3]/a_0[1-3].txt

編輯 - 當然這僅僅是一個過濾器,正則表達式的不能進行排序。

+0

謝謝!你的意思是做類似於:regexpi({f.name},'individual [1-3]/a_0 [1-3] .txt','match')?我嘗試過,但沒有奏效......在這種情況下,{f.name}來自f = dir('path/to /'),因此顯示了individual1,individual2和individual3的文件夾。 – HappyPy

+0

@HappyPy - 你不能給它一個選項來列出所有的子目錄文件。在Windows命令行中,例如它是'C:> dir/s'。 – sln

+0

其實它在Windows中是'C:> dir/B/s'。其中/ B是裸格式(完整路徑和文件名)。 – sln

相關問題