2013-07-22 1 views
0

Я пытаюсь получить путь ко всем файлам jpeg в каталоге, включая «fig». Этот код ниже получает все jpeg-файлы в каталоге, но не исключает любые помеченные файлы.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 –

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, вероятно, работать тоже.

 Смежные вопросы

  • Нет связанных вопросов^_^