我有近1000张图片 img0.png,img1.png,img3.png,...,img1000.png。 我正在使用MatLab,我的代码如下:
SendMessage, 0x7, 0, 0, Edit3, A ; WM_SETFOCUS = 0x07
所以 imageNames 结构包含如下
img0.png
img1.png
img10.png
img100.png .......
但我想要
img0.png
img1.png
img2.png .......
这可以在MatLab中以编程方式进行吗?
此致
答案 0 :(得分:1)
如果您正在尝试转换文章名,就像您在评论中所说的那样。您可以使用regexprep
获取与旧文件名对应的新文件名列表。
newnames = regexprep({imageNames.name},'(img)(\d*)(\.png)','$1${sprintf(''%04d'', $2)}$3')
基本上,这会拉出每个文件名的数字部分,然后通过sprintf
运行它,按照你的建议零填充它(4位零填充)。
如果您想使用这些新名称重新保存图像,只需循环即可。
for k = 1:numel(imageNames);
movefile(imageNames(k).name, newnames{k});
end
如果需要,您还可以对newnames
变量进行排序,它现在会自然排序。
[values, sortinds] = sort(newnames);
sortedNames = imageNames(sortinds);