MATLAB Answers

How to save multiple figures with subplots as a single .fig file in an for loop

9 views (last 30 days)
In-chan Kim
In-chan Kim on 2 Mar 2020
Commented: Ruger28 on 4 Mar 2020
Hi
I want to save as .fig file multiple figures, each of which have subplots in them, created within a for loop.
I'd like to save each .fig file for each iteration of the loop.
At the moment, I have these plots, which I try to put into one output called figs. And I have a figs being created in each iteration.
I then try to save it.
But it's not working.
Also, I get a lot of figures for each for loop, so it'd be great if I could not actually bring up a figure each time, but still save it, and be able to make them into figures after I open up the saved file
Thanks!
within the for loop
figs(1,1)=figure;
subplot(2,2,1)
cdfplot(baseavgpricecomp)
subplot(2,2,2)
etc.
figs(1,2)=figure;
subplot(2,2,1)
etc.
% for each iteration
figname = sprintf('Form1_Scenario%dfigs',j);
figpath='Analysis';
saveas(figs, fullfile(figpath, figname), 'fig')

  0 Comments

Sign in to comment.

Answers (1)

Ruger28
Ruger28 on 2 Mar 2020
Edited: Ruger28 on 2 Mar 2020
Try this. Pay special attention to the last line.
% within the for loop
figs(1,1)=figure;
subplot(2,2,1)
cdfplot(baseavgpricecomp)
subplot(2,2,2)
% etc.
figs(1,2)=figure;
subplot(2,2,1)
% etc.
% for each iteration
figname = sprintf('Form1_Scenario%dfigs',j);
figpath='Analysis';
saveas(figs, fullfile(figpath, [figname,'.fig'])); % changed how name is saved

  4 Comments

Show 1 older comment
Ruger28
Ruger28 on 3 Mar 2020
try savefig instead. Not sure of the requirements for it.
savefig(figs, fullfile(figpath, [figname,'.fig']));
In-chan Kim
In-chan Kim on 3 Mar 2020
Afraid not. Still getting an error. Maybe it's to do with the format of figs? Please see the picture below

Sign in to comment.