how to save a string as a filename?

107 vues (au cours des 30 derniers jours)
Subrat kumar sahoo
Subrat kumar sahoo le 5 Juil 2012
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

Réponse acceptée

Thomas
Thomas le 5 Juil 2012
Modifié(e) : Stephen23 le 17 Fév 2017
Maybe something like this
for number=1:10
file_name = sprintf('case study_#%d.txt',number);
save(file_name,...);
end
  1 commentaire
Amir Pasha Zamani
Amir Pasha Zamani le 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)
end
But when I run it, I get the error:
Error using save
Argument must contain a character vector.
:(
Can anyone help please?

Connectez-vous pour commenter.

Plus de réponses (2)

Jan
Jan le 7 Juil 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 le 5 Juil 2012
for i=1:2;
save(['test_' num2str(i)]);
end
  1 commentaire
Albert Yam
Albert Yam le 6 Juil 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
%'case_study_test_simulation.mat
save('a') %will produce a.mat
This is because Matlab reads string 'a', not variable 'a' (that contains string 'case_study_test_simulation'

Connectez-vous pour commenter.

Catégories

En savoir plus sur File Operations dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by