How to name files in a folder based on parent folder?

Hello all,
I'm newbie to Matlab and I got a question regarding naming files in folders. I have 6 folders let's say simulation_data1 to 6, and there are 17 pictures in each folders which are named block_1 to 17 now in all 6 folders. I was wondering how can I name each batch of pictures (17 figs) in every folder based on the name of parent folder? For example, all figs in folder simulation_data1 become simulation_data1_1 to 17.
any help would be appreciated.
regards

 Réponse acceptée

for i=1:6 % 6 folders
foldername = sprintf('simulation_data%d', i)
mkdir(foldername)
cd(foldername)
for j=1:2 % 2 files for example
filename = sprintf('%s_%d', foldername, j);
fprintf(' Filename: %s\n', filename)
save(filename, 'filename'); % create a file
end
cd( '..');
end
foldername = 'simulation_data1'
Filename: simulation_data1_1 Filename: simulation_data1_2
foldername = 'simulation_data2'
Filename: simulation_data2_1 Filename: simulation_data2_2
foldername = 'simulation_data3'
Filename: simulation_data3_1 Filename: simulation_data3_2
foldername = 'simulation_data4'
Filename: simulation_data4_1 Filename: simulation_data4_2
foldername = 'simulation_data5'
Filename: simulation_data5_1 Filename: simulation_data5_2
foldername = 'simulation_data6'
Filename: simulation_data6_1 Filename: simulation_data6_2
dir
. .. simulation_data1 simulation_data2 simulation_data3 simulation_data4 simulation_data5 simulation_data6

5 commentaires

Thanks for your reply, even though the code creates new mat files and did not renamed the present pictures. So if there is a way to rename the existing png pictures in the folders?
You can ajust the code for your need:
for i=1:6 % 6 folders
foldername = sprintf('simulation_data%d', i)
mkdir(foldername)
cd(foldername)
for j=1:2 % 2 files for example
filename_old = sprintf('block%d.png', j);
filename_new = sprintf('%s_%d.png', foldername, j);
movefile(filename_old, filename_new);
end
cd( '..');
end
Thanks a billion for your attention, however mkdir(foldername) overwrites the present folders and data, so it remains pointless.
Just remove it. It is used to generate data (as I don't have your data).
Thanks a lot. I fixed it.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by