У меня есть 1000 изображений, которые я хочу переименовать, чтобы они переименовали их от 1 до 1000. Я нашел это решение (ответ с наибольшим количеством голосов):
dirData = dir('*.png'); %# Get the selected file data
fileNames = {dirData.name}; %# Create a cell array of file names
for iFile = 1:numel(fileNames) %# Loop over the file names
newName = sprintf('%04d.png',iFile); %# Make the new name
movefile(fileNames{iFile},newName); %# Rename the file
end
Но оно не срабатывает, когдаколичество цифр от исходного имени файла изменяется. В частности:
- После переименования 10 изображений десятое изображение становится номером 1.
- При применении кода на 101 изображение 101-е изображение становится первым, 100-е становится вторым и десятоестановится третьим.
Это влияет на мой набор данных, потому что их позиция важна. Цель состоит в том, чтобы переименовать изображения с 1,2,3, .... на N. Любой способ решить эту проблему?
Мои исходные имена файлов имеют вид 90_AAA_AA_CC
ипервое число в приведенной выше форме варьируется от 1
до N
для N изображений.
Начиная с "dirData.name", заказы на 100 изображений выглядят следующим образом:
100,10,11,12, ...
19,1,20,21, ...
29,2,30,31, ...
39,3,40,41, ...
49,4,50,51, ...
59,5,60,61, ...
69,6,70,71, ...
79,7,80,81, ...
89,8,90,91, ... 99,9