Group files with same names

11 vues (au cours des 30 derniers jours)
HPL
HPL le 7 Juin 2021
Commenté : Stephen23 le 17 Juin 2021
I have a folder with images of different models of cars(20 to be specific). For each car model I have 100 sample images. They are all in a single folder and named:
Audi_01, Audi_02, ...... , Audi_100
Lexus_01, Lexus_02 ...., Lexus_100
...
How can I group same model cars and put them in a new folder.
I tried : copyfile Audi*.jpg Audi
But, for that I have to type and run the command for 20times.
Is there any alternative way or command in matlab?

Réponses (1)

Jan
Jan le 7 Juin 2021
Modifié(e) : Jan le 7 Juin 2021
Folder = 'D:\Your\Data\Folder';
FileList = dir(fullfile(Folder, '*.jpg'));
FileName = {FileList.name};
Name = unqiue(strtok(FileName, '_'));
for iName = 1:numel(Name)
mkdir(fullfile(Folder, Name{iName}));
match = startsWith(FileName, [Name{iName}, '_']);
Group = FileName(match);
for iGroup = 1:numel(Group)
copyfile(fullfile(Folder, Gorup{iGroup}), fullfile(Folder, Name{iName}));
end
end
  4 commentaires
HPL
HPL le 16 Juin 2021
This code isn't working.
"Name" is storing all the file names rather than storing unique filenames
The error I am getting is:
Unable to create directory.
  • " *.jpg " already exists as a file.
Stephen23
Stephen23 le 17 Juin 2021
@HPL: please save the cell array FileName in a .mat file and upload it by clicking the paperclip button.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Image Data Workflows dans Help Center et File Exchange

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by