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