how to save a string as a filename?

176 views (last 30 days)
Hi, How to save a file "with the characters of a string" as the file name? For example, I have a piece of code, which generates a sting output "case study_# " and the number (#) changes each time I feed in different inputs. I want the name of the output file to be saved, based on the string output. Thanks, Subrat

Accepted Answer

Thomas on 5 Jul 2012
Edited: Stephen23 on 17 Feb 2017
Maybe something like this
for number=1:10
file_name = sprintf('case study_#%d.txt',number);
  1 Comment
Amir Pasha Zamani
Amir Pasha Zamani on 19 Sep 2020
It doesn´t work for me
My code is something like this:
for Animal=1:N
Data = {rand(2,2) ; rand(3,3)};
file_name = ['Animal_' , num2str(Animal)];
save (file_name , Data)
But when I run it, I get the error:
Error using save
Argument must contain a character vector.
Can anyone help please?

Sign in to comment.

More Answers (2)

Jan on 7 Jul 2012
This is an evergreen question, See FAQ: How to process files in a loop.
It is strongly recommended to read the other frequently asked questions also. It is worth to profit from the problems others had already.

Albert Yam
Albert Yam on 5 Jul 2012
for i=1:2;
save(['test_' num2str(i)]);
  1 Comment
Albert Yam
Albert Yam on 6 Jul 2012
I'm quoting your response, in case it can help someone else.
For example, if the name of the sting is 'a' and it generates the output as "case_study_test_simulation"
a = case_study_test_simulation;
then I expect the saved file to have the file name as "case_study_test_simulation.mat." Instead, I end up getting the file name as "a.mat."
From what I understand (I'm writing it out as 'I' would read it), you have a variable 'a' that contains a string 'case_study_test_simulation' (as opposed to string string a). so
a = 'case_study_test_simulation'; %note the quotes
save(a) %this will produce what you are asking for
save('a') %will produce a.mat
This is because Matlab reads string 'a', not variable 'a' (that contains string 'case_study_test_simulation'

Sign in to comment.


Find more on Variables in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by