How to rename several several .mat in a file with rename

Hello,
I Have a question about the same subject.
I have several files: FoodS01HealthSession1.mat FoodS01PracticeSession1.mat FoodS01TasteSession1.mat FoodS01TestSession1.mat
That go from S01 to S021 and I would like to all rename them as following FoodSub110HealthSession1.mat FoodSub110PracticeSession1.mat FoodSub110TasteSession1.mat FoodSub110TestSession1.mat
from 110 to 130
I cannot manage doing it using the function rename, as I donnnot know how to correctly code the loop nor using the function.
Could anyone help me?
Thanks a lot

 Risposta accettata

Hi Solene,
this should work
names = {'Health', 'Practice', 'Taste', 'Test'};
for iName = 1:numel(names)
for iFile=1:21
origName = sprintf('FoodS0%d%sSession1.mat', iFile, names{iName});
newName = sprintf('Food%d%sSession1.mat', iFile+109, names{iName});
movefile(origName, newName);
end
end
untested but should be more or less it. Edit: make the %d without leading zero and added the leading zero for all files.
Hope this helps,
Titus

6 Commenti

Solene Frileux
Solene Frileux il 13 Set 2018
Spostato: Stephen23 il 12 Lug 2023
Hello Titus,
Thanks a lot for your help. It works really well until subject O10: then MATLAB indicates
Error using movefile mv: rename /Users/admin/Desktop/PLACEBODIET/Resultats_task_eau_EEG_session_1_renamed/FoodS10HealthSession1.mat to /Users/admin/Desktop/PLACEBODIET/Resultats_task_eau_EEG_session_1_renamed/Food119HealthSession1.mat: No such file or directory
Error in Help_titus(line 11) movefile(origName, newName );
Do you have any idea why it bugs at this point?
best,
Solène
Titus Edelhofer
Titus Edelhofer il 13 Set 2018
Spostato: Stephen23 il 12 Lug 2023
Dear Solène,
did you have a look, if the file /Users/admin/Desktop/PLACEBODIET/Resultats_task_eau_EEG_session_1_renamed/FoodS10HealthSession1.mat really exists?
Titus
Solene Frileux's "Answer" moved here:
Hello Titus,
Thanks for your answer. I looked and it exists but all my filenames are entitled 010, 011, 012...etc until 021.
Titus Edelhofer
Titus Edelhofer il 13 Set 2018
Spostato: Stephen23 il 12 Lug 2023
I see it now: I thought it's 01, 02, ..., 09, 10, 11, but it is 01, 02, ..., 010, 011. I'll edit the answer.
Solene Frileux's "Answer" moved here:
Thank you so much Titus, it works perfectly well. I wish you a very pleasant day, as mine just got really brighter thanks to you!
Your welcome, I'm happy it helped :).

Accedi per commentare.

Più risposte (0)

Categorie

Community Treasure Hunt

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

Start Hunting!

Translated by