2013-09-07 2 views
1

Я просматриваю множество файлов, и мне нужно удалить «.jpg» из каждого имени.matlab Как удалить .jpg из имени файла

Пример имени файла:

20403y.jpg 

но мне просто нужно все имена файлов

20403y 

заканчиваются 'у', если это помогает.

+0

Это не ясно, что вы имеете в виду ... у вас есть имена, хранящиеся в переменной в MATLAB и желает, чтобы удалить " .jpg ", или вы хотите переименовать файлы? –

+0

Да, у меня есть переменная с именем файла, и я хочу удалить .jpg – FireSky

ответ

5

Один из способов с регулярными выражениями:

filename = 'myfilename.jpg'; 
pattern = '.jpg'; 
replacement = ''; 
regexprep(filename,pattern,replacement) 

Результат:

ans = 

myfilename 

Если у вас есть имена файлов в массив ячеек кормить массив ячеек в regexprep. Как объясняет документация: «Если str - массив ячеек строк, то возвращаемое значение regexprep s всегда является массивом ячеек строк, имеющих те же размеры, что и str».

Пример:

myfilenames = {'myfilename.jpg' 'afilename.jpg' 'anotherfilename.jpg' }; 
newfilenames= regexprep(myfilenames,'.jpg',''); 

Результат:

newfilenames = 

    'myfilename' 'afilename' 'anotherfilename' 
+1

Спасибо, это прекрасно! – FireSky

0
files = dir('*y.jpg'); 

% Loop through each 
for id = 1:length(files) 
    % Get the file name (minus the extension) 
    [p, f] = fileparts(files(id).name); % f will just give you file name 

    % Use following to rename the files 
    % I think you don't want to rename them 
    % movefile(files(id).name, f); 
end 
+0

В этом случае я думаю, что 'regexp' и' strrep' являются предпочтительными, поскольку они могут работать на массивах ячеек ... –

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