MATLAB Answers


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

Asked by Solene Frileux on 13 Sep 2018
Latest activity Commented on by Titus Edelhofer on 14 Sep 2018
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


Sign in to comment.


2 Answers

Answer by Titus Edelhofer on 13 Sep 2018
Edited by Titus Edelhofer on 13 Sep 2018
 Accepted Answer

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);
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,


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.
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 :).

Sign in to comment.

Answer by Solene Frileux on 13 Sep 2018

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?


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?
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.

Sign in to comment.