Save all the plots

1 036 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.

Community Treasure Hunt

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

Start Hunting!

Translated by