批量重命名1000张JPG:按步长20递增数值后缀的MATLAB实现需求
批量重命名JPG图片的MATLAB实现方案
原代码仅能替换固定字符串,无法实现按20步长递增的数值命名需求,以下是修正后的实现代码及说明:
核心实现代码
% 获取所有JPG格式图片(兼容大小写,若原文件是.jpeg则替换为*.[jJ][pP][eE][gG]) datafiles = dir('*.[jJ][pP][gG]'); % 对文件排序,确保按顺序处理(避免dir返回的文件顺序混乱) datafiles = sortfiles(datafiles); % 初始数值(取自用户提供的第一个文件名) initial_val = 0.0164032559841871; % 步长设置为20 step = 20; for i = 1:length(datafiles) % 计算当前文件对应的目标数值 current_val = initial_val + (i-1)*step; % 生成新文件名,保留15位小数以匹配原格式 new_filename = sprintf('1_nb_1_%.15f.jpg', current_val); % 执行重命名操作 movefile(datafiles(i).name, new_filename); end
关键说明
- 文件排序:使用
sortfiles对dir获取的文件列表排序,保证重命名顺序与文件实际顺序一致,避免步长递增逻辑出错。 - 数值精度:通过
%.15f格式化字符串,确保新文件名的数值部分保留与原示例相同的小数位数,维持格式一致性。 - 扩展名兼容:若原文件是
.jpeg格式,只需将代码中的*.[jJ][pP][gG]和.jpg替换为*.[jJ][pP][eE][gG]和.jpeg即可。 - 测试建议:批量操作前可先选取少量文件测试代码,确认命名效果符合预期后再执行全量重命名。
内容的提问来源于stack exchange,提问作者MezRasol
相关产品推荐
相关产品推荐

