Save all the plots

931 views (last 30 days)
Konstantinos
Konstantinos on 11 Mar 2015
Commented: Hira on 27 Sep 2022
Each time I run my code it produces 100 figures. So, I have to waste my time and save each one of them. Is there a command that can do that work for me by saving all the figures at once?
  1 Comment
Hira
Hira on 27 Sep 2022
m=1;
title("S31 Plot Measurement Number ("+m+")")
xlabel('Delay')
ylabel('Mag(S31)')
saveas(gcf,"S31_plot_"+name+"_Measurement_No_"+m+".fig")
close(gcf)
m=m+1;

Sign in to comment.

Accepted Answer

Jan
Jan on 11 Mar 2015
No, there is no such command. But it is easy to write one:
FolderName = tempdir; % Your destination folder
FigList = findobj(allchild(0), 'flat', 'Type', 'figure');
for iFig = 1:length(FigList)
FigHandle = FigList(iFig);
FigName = get(FigHandle, 'Name');
savefig(FigHandle, fullfile(FolderName, FigName, '.fig'));
end
Adjust the FigName to your needs.
  5 Comments
Brandon Laflen
Brandon Laflen on 19 May 2020
If they load backwards, I'm guessing findobj is LIFO. Maybe try
savefig(FigList(end:-1:1),filename)
instead?

Sign in to comment.

More Answers (3)

Luke Shaw
Luke Shaw on 30 Nov 2018
Edited: Luke Shaw on 30 Nov 2018
Missed a make current step: set(0, 'CurrentFigure', figureHandle)
FolderName = tempdir; % Your destination folder
FigList = findobj(allchild(0), 'flat', 'Type', 'figure');
for iFig = 1:length(FigList)
FigHandle = FigList(iFig);
FigName = num2str(get(FigHandle, 'Number'));
set(0, 'CurrentFigure', FigHandle);
savefig(fullfile(FolderName, [FigName '.fig']));
end
  4 Comments
Nabil Mederbel
Nabil Mederbel on 11 Jun 2022
Hi guys,
I tried to save figures with '.eps' format ...didnt work.
any idea ? thx

Sign in to comment.


Tanveer
Tanveer on 18 Sep 2022
FolderName = 'xx'; % Your destination folder
FigList = findobj(allchild(0), 'flat', 'Type', 'figure');
for iFig = 1:length(FigList)
FigHandle = FigList(iFig);
FigName = ['Fig' num2str(iFig)];
savefig(FigHandle, fullfile(FolderName, [FigName '.fig']));
saveas(FigHandle, fullfile(FolderName, [FigName '.png']));
% saveas(FigHandle,filename,formattype)
end

Mehri Mehrnia
Mehri Mehrnia on 3 Aug 2022
Based on the answers, it means there is no 1 line of code which can save all open plots?
  1 Comment
Hira
Hira on 27 Sep 2022
m=1;
title("S31 Plot Measurement Number ("+m+")")
xlabel('Delay')
ylabel('Mag(S31)')
saveas(gcf,"S31_plot_"+name+"_Measurement_No_"+m+".fig")
close(gcf)
m=m+1;

Sign in to comment.

Categories

Find more on Printing and Saving 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