2013-07-22 62 views
0

我試圖獲取包含'無花果'的目錄中所有jpeg文件的路徑。以下代碼獲取目錄中的所有jpeg文件,但不排除任何'rft'標記的文件。Matlab:使用dir命令時包含文件路徑的一部分

base_directory = '/home/user/data/'; 
directories = dir([base_directory,'/*.jpg']); 
filenames = directories; 

的目錄的一個實例是

goblet_fig_2004_03_07.jpg 
goblet_rft_2004_03_07.jpg 
goblet_fig_2004_11_02.jpg 
goblet_rft_2004_11_02.jpg 

任何幫助理解。

後幫這是我的完整代碼,請注意「 .JPG」,是我一直在尋找

base_directory = '/home/user/data/';         
directories = dir([base_directory,'*fig*.jpg']);        
filenames = directories;             
for fileIndex = 1: length(filenames) 
    image = imread([base_directory,'/',filenames(fileIndex).name]);  
end                               
+0

什麼問題? 而且你連續使用兩個斜線,是否正確? –

+0

如何編碼dir命令以僅獲取包含'fig'和'.jpg'的文件? – FireSky

回答

0
filenames = dir('*fig*.jpg') 

我已經嘗試過在Windows,而不是Linux的答案,但它應該管用。

+0

詞像一個魅力(在Linux上),謝謝。 – FireSky

+0

從技術上來說,文件名現在是filenames.name。 – voxeloctree

+0

當然,但他們原來的代碼由@FireSky –

1

簡單的回答是這樣的:

directories = [dir('*.fig'); dir('*.jpg')] 
0

您可以嘗試使用正則表達式例如

directories = {'goblet_fig_2004_03_07.jpg' 
'goblet_rft_2004_03_07.jpg' 
'goblet_fig_2004_11_02.jpg' 
'goblet_rft_2004_11_02.jpg'}; 

directories(~cellfun('isempty',regexp(directories,'fig'))) 

回報

ans = 

    'goblet_fig_2004_03_07.jpg' 
    'goblet_fig_2004_11_02.jpg' 

其他功能,如findstr大概工作了。

相關問題