Save all the plots

633 ビュー (過去 30 日間)
Konstantinos
Konstantinos 2015 年 3 月 11 日
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 件のコメント
Hira
Hira 2022 年 9 月 27 日
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;

サインインしてコメントする。

採用された回答

Jan
Jan 2015 年 3 月 11 日
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 件のコメント
Lars Abrahamsson
Lars Abrahamsson 2020 年 5 月 18 日
I noticed one "problem" when saving all figures into one file.
When loading them back with "openfig" the numbers/order of the figures becomes revered.
Why is that? Can anything be done to counteract that?
Brandon Laflen
Brandon Laflen 2020 年 5 月 19 日
If they load backwards, I'm guessing findobj is LIFO. Maybe try
savefig(FigList(end:-1:1),filename)
instead?

サインインしてコメントする。

その他の回答 (3 件)

Luke Shaw
Luke Shaw 2018 年 11 月 30 日
編集済み: Luke Shaw 2018 年 11 月 30 日
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
  5 件のコメント
Nabil Mederbel
Nabil Mederbel 2022 年 6 月 11 日
Hi guys,
I tried to save figures with '.eps' format ...didnt work.
any idea ? thx
José Ángel Sevillano Caraballo
José Ángel Sevillano Caraballo 2024 年 6 月 10 日
This worked for '.png' format, it should work for whatever format you want.
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);
saveas(FigHandle,fullfile(FolderName, [FigName '.png'])); %Specify format for the figure
end

サインインしてコメントする。


Tanveer
Tanveer 2022 年 9 月 18 日
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 2022 年 8 月 3 日
Based on the answers, it means there is no 1 line of code which can save all open plots?
  1 件のコメント
Hira
Hira 2022 年 9 月 27 日
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;

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeAnnotations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by