Need help for Renaming Matlab Image png

3 visualizzazioni (ultimi 30 giorni)
LinusL
LinusL il 13 Ago 2021
Modificato: LinusL il 13 Ago 2021
Hi,
I have a folder consist of images which has random name but its placing on index (sorting) is correct.
I want to rename those folder to 1,2,3,4,5 and so on, instead of its random name.
Example: 323A23.png to 1.png
Any expert can offer me guidance how to rename file.
Thanks.

Risposta accettata

Dave B
Dave B il 13 Ago 2021
Modificato: Dave B il 13 Ago 2021
I often find myself doing this sort of thing with the system command, but it's probably better to do it with movefile.
Suppose your files are in C:\myfiles
filepath='C:\myfiles'
movefile(fullfile(filepath, '323A23.png'), fullfile(filepath, '1.png'));
Of course you probably want to loop over many files. A pro tip is, before you rename all of your files to something that you didn't intend, have a look at what the code will do with a disp:
filelist=dir(fullfile(filepath, '*.png'));
for i = 1:numel(filelist)
oldname = filelist(i).name;
newname = [num2str(i) '.png']; % can also do newname = string(i) + ".png";
fprintf('will rename %s to %s\n'); %check these before running with the next line uncommented
%movefile(fullfile(filepath, oldname), fullfile(filepath, newname));
end
The system version of this just amounts to passing in the same text that you'd put into the shell, e.g. in windows it's something like:
system(['rename "' fullfile(filepath, oldname) '" "' fullfile(filepath, newname) '"'])
but it's easy to mess up the quotes which you need for file names that contain spaces, so I think movefile is probably better, and it will also be multi-platform!

Più risposte (1)

KSSV
KSSV il 13 Ago 2021
Modificato: KSSV il 13 Ago 2021
thepath =' '; % give the path of the folder
imgNames =dir( fullfile(thepath, '*.png') );
for img = 1 : numel(imgNames )
newName = fullfile(thepath, [num2str(img),'.png'] );
movefile( fullfile(thepath, imgNames(img).name), newName );
end
  4 Commenti
LinusL
LinusL il 13 Ago 2021
Brace indexing is not supported for variables of this type.
Error in Untitled (line 8)
movefile( fullfile(thepath, imgNames{ img }), newName );
KSSV
KSSV il 13 Ago 2021
Try now..edited the answer.

Accedi per commentare.

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Prodotti


Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by