Azzera filtri
Azzera filtri

How to save a plot with the name of the file

25 visualizzazioni (ultimi 30 giorni)
alberto caracciolo
alberto caracciolo il 14 Feb 2019
Commentato: Mark Sherstan il 1 Mar 2019
Hi,
I'm a beginner on Matlab.
I have a script that read an excel table, does some operations and plots 3 different figures.
What I would like to do is to save each figure with a different name, made of the script's name + _Fo (for example). So if scripts are named file1, file2 and file 3, I want figure 1 to be named file1_Fo, figure 2 as file2_Mn and figure 3 as file3_Ni. The name of the script and the name of the excel table are the same!
How could I do that?
I've tried with something like that
saveas(fig(1), sprintf('_Fo.jpg', 1))
But i don't know how to put the name of the file automatically in front of _Fo.
Thank you
Alberto

Risposte (2)

Mark Sherstan
Mark Sherstan il 14 Feb 2019
Modificato: Mark Sherstan il 14 Feb 2019
Use the strcat function. For example...
x = [2 4 7 2 4 5 2 5 1 4];
bar(x);
saveas(gcf,strcat('file',num2str(ii),'_Fo.jpg')) % Where ii would be the number you want (e.g. you could make a loop so it is not hard coded).
  2 Commenti
alberto caracciolo
alberto caracciolo il 19 Feb 2019
Thank you but I don't understand it!
Let's say that I have a script (e.g called MyTest) that produces 3 different figures.
How do I save them automatically with a name like MyTest_Fo, MyTest_Ni and MyTest_Mn?
I would like a way to automatically get the script's name + _Fo, without manually type the script's name!
I don't know if you see what I mean!
Cheers!

Accedi per commentare.


Stephen23
Stephen23 il 19 Feb 2019
Use the mfilename function:
M = mfilename();
C = {'Fo','Mn','Ni'};
for k = 1:3
F = sprintf('%s%d_%s.jpg',M,k,C{k})
saveas(fig(1),F)
end

Categorie

Scopri di più su Printing and Saving in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by