Filter löschen
Filter löschen

how to save a string as a filename?

77 Ansichten (letzte 30 Tage)
Subrat kumar sahoo
Subrat kumar sahoo am 5 Jul. 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

Akzeptierte Antwort

Thomas
Thomas am 5 Jul. 2012
Bearbeitet: Stephen23 am 17 Feb. 2017
Maybe something like this
for number=1:10
file_name = sprintf('case study_#%d.txt',number);
save(file_name,...);
end
  1 Kommentar
Amir Pasha Zamani
Amir Pasha Zamani am 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?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Jan
Jan am 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 am 5 Jul. 2012
for i=1:2;
save(['test_' num2str(i)]);
end
  1 Kommentar
Albert Yam
Albert Yam am 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
%'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'

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu File Operations finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by