修改文件名之 从 '1.jpg' 到 '01.jpg', '001.jpg'...'0...01.jpg'
使用 Matlab 时想按文件序号增大的顺序读取, 文件原本的命名序号为 1,2,3,...,100, 从而导致读取 1.jpg 之后读取的是 10.jpg。
所以考虑将原本的文件名修改为 001,002,...,100 的样子。
在使用函数 num2str 时,有第二个参数为字符串的格式, num2str(num, format)。于是可以考虑使用 num2str(num, '%03d'), '3'表示转换后的字符串有3个字符,'0' 则表示不够 3 位的地方添 '0'。
num2str(3, '%03d') % '003'
num2str(13, '%03d') % '013'
num2str(113, '%03d') % '113'
但是因为需要对多个文件夹做如上的处理, 且每个文件夹的数量不一样, 有十个以内的, 几十个的, 几百个的。 因此需要根据文件夹的数量自适应的更改 '%03d' 中的 '3'。
l = length(files);
for i = 1:l
new_name = [num2str(i, ['%0', num2str(length(num2str(l))),'d']), '.jpg']
imwrite(files(i), new_name)
end