重命名图像并使用新名称保存它们,并每次递增 20

问题描述 投票:0回答:1

我有1000个jpg文件,文件名:1_nb_1_0.0164032559841871、1_nb_1_20.0611820686609,我想通过增加两个字符来用新名称重命名这1000个文件,例如重命名为这个名称:1_nb_1_20.0611820686609但增加ing 20 获取新的其他图像.

datafiles = dir('*.jpeg');
for i = 1:length(datafiles)
    fileOut = strrep(datafiles(i).name, '1_nb_1_0.0164032559841871.jpeg', '.jpeg');
    movefile(datafiles(i).name, fileOut);
end
`
matlab rename auto-increment file-rename sprint
1个回答
0
投票

据我所知,你想做什么:

fileOut = strrep(datafiles(i).name, '1_nb_1_0.0164032559841871.jpeg', '.jpeg');

是否将“1_nb_1_0.0164032559841871.jpeg”替换为新名称?而且新名字是从20到最后跳跃20个?如果是这样的话,你可以这样说:

fileOut = strrep(datafiles(i).name, '1_nb_1_0.0164032559841871.jpeg', strcat(num2str(20*i),'.jpeg'));

这会创建名称 20.jpg,40.jpg,60.jpg... 如果您想要的只是使用另一个名称(例如您已有的名称)执行此操作,也可以这样做:

fileOut = strrep(datafiles(i).name, '1_nb_1_0.0164032559841871.jpeg', strcat('1_nb_1_',num2str(20*i),'.0164032559841871.jpeg'));

然后你会得到 1_nb_1_20.0611820686609.jpg,1_nb_1_40.0611820686609.jpg,...我不确定这是否是你想要的。如果你想从 0 而不是 20 开始,你可以用 num2str(20*(i-1)) 更改它,或者用 num2str(20*(i+1)) 从 40 开始

© www.soinside.com 2019 - 2024. All rights reserved.