MATLAB :按數字順序批量重命名檔案夾,并按自然順序讀取檔案
MATLAB 預設檔案輸出順序一般是:
1.jpg
11.jpg
12.jpg
2.jpg
21.jpg
3.jpg
而我們想要輸出的形式是:
1.jpg
2.jpg
3.jpg
11.jpg
12.jpg
21.jpg
即使采用了sort也不能解決此問題。後來我發現将檔案重命名,統一輸出格式,可以解決上述問題。例如:統一變成三位數字,位數不足前面添0.
001.jpg
002.jpg
003.jpg
011.jpg
012.jpg
021.jpg
基本代碼
以 .jpg 格式為例
files = dir('F:\Download\*.jpg');
path1='F:\Download\t1\'; % 檔案所在檔案夾路徑
path2='F:\Download\t2\'; % 檔案重命名後存放的檔案夾路徑
len=length(files);
for i=1:len
oldname = files(i).name;
old_path = [path1,oldname]; % 檔案路徑
im = imread(old_path);
% 修改檔案名,4位數,不足前面加0
new_path = sprintf('%s%04d.jpg',path2,i); % 重命名後新檔案路徑
imwrite(im,new_path);
end