Save figure with all subplots

I generated a lot of figures with subplots. I want to save them and don't want to display them.
I realized only the last subplot is saved. Is there anyway I can save all subplots in a figure.
The following is an example code.
t=linspace(1,10,20);
y=2*t;
for i=1:3
f=figure('visible','off');
subplot(1,3,i)
p=plot(t,y);
saveas(f,'test','jpg')
end

1 Comment

Trang Doan
Trang Doan on 19 Apr 2021
Moved: Adam Danz on 7 Oct 2024
how to save 1 figure of the subplots

Sign in to comment.

Answers (1)

Construct new file names each iteration.
saveas(f, sprintf('test%d.jpg', i))

4 Comments

Sharon
Sharon on 9 Oct 2019
Edited: Sharon on 9 Oct 2019
Thank you Walter.
I made the mistake using
figure('visible','off')
So it generates new figure every loop.
After correcting it to
t=linspace(1,10,20);
y=2*t;
for i=1:3
f=figure(1);
set(f,'Visible', 'off')
subplot(1,3,i)
p=plot(t,y);
saveas(f,'test','jpg')
end
It works.
That would overwrite test.jpg each iteration.
You are right. I should put saveas outside the loop.
I'd also like to point readers in the direction of exportgraphics instead of saveas.
exportgraphics(fig, filename)

Sign in to comment.

Categories

Find more on Printing and Saving in Help Center and File Exchange

Asked:

on 9 Oct 2019

Commented:

on 7 Oct 2024

Community Treasure Hunt

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

Start Hunting!