批量更改Matlab中的文件名

时间:2014-04-24 11:30:52

标签: matlab filenames batch-processing batch-rename

我有200张JPEG图像,编号从1200到1399.如何更改名称从1200.jpg - 1400.jpg更改为1.jpg - 200.jpg,同时保留原始顺序图像名称?

2 个答案:

答案 0 :(得分:4)

这是一个可以在bash或其他shell脚本语言中更有效地解决的问题。也许,它甚至可以通过单个shell find来解决。

无论如何,matlab也可以做到这一点。

考虑一下。

list = dir('./stack*.png'); % # assuming the file names are like stack1200.jpg

offset = -1200;  # % numbering offset amount

for idx = 1:length(list)   % # we go through every file name

    name = list(idx).name;   
    number = sscanf(name,'stack%f.png',1);   % # we extract the number
    movefile(name,['stack' num2str(number + offset) '.png' ]);   % # we rename the file.

end

答案 1 :(得分:0)

我发现这个解决方案很简单。

Pathfold= ('Path\to\images\');
dirData = dir('path\to\images\*.jpg'); 
fileNames = {dirData.name}; 
for i = 1:size(fileNames)  
    newName = sprintf('%d.jpg',i);
    movefile(fileNames{i},[Pathfold , newName]) %# Rename the file
end