Loop for mutliple (but variable) number of plots on multiple pages

16 views (last 30 days)
I'm trying to make multiple pages of subplots, but the number of pages varies. There will be 12 subplots per page. Note that sometimes there will be 13 plots, sometimes 24, whatever--it varies. the xy data is just dummy data to set up the template.
Below is my starter script, but I am not sure of the best way to automate it so it "kicks over" to a new page on the 13th plot?
x = randn(5,1);
y = randn(5,1);
nplots = 13;
for ii = 1:nplots
if ii < 12
subplot(4,3,ii)
plot(x,y)
title(strcat('plot #', num2str(ii)), 'FontSize', 6)
box on
end
end
h = gcf;
set(h, 'PaperPositionMode', 'auto');
set(h, 'PaperOrientation', 'landscape');
set(h, 'PaperUnits', 'inches', 'PaperPosition', [0,0,11,8.5])
%figOut = 'test_page1';
%print(figOut, '-r300', '-dpdf')
%close all;
untitled.jpg

Accepted Answer

dpb
dpb on 17 Aug 2019
Figure out how many figures you need a priori...
nplots = 13;
pperfigure=12;
nfigures=ceil(nplots/pperfigure);
nUp=pperfigure;
n=0;
for f=1:nfigures
hF(f)=figure;
if f==nfigures, nUp=mod(nplots,pperfigure); end
for ii = 1:nUp
hAx(f,ii)=subplot(4,3,ii);
...
end
end
  3 Comments
dpb
dpb on 19 Aug 2019
Edited: dpb on 19 Aug 2019
You're welcome...you did catch that n was to be a counter on which dataset is being plotted that I didn't increment above, I presume, and did have a way to select the correct x,y data for the nth plot.
newbie9
newbie9 on 19 Aug 2019
Yes, that was actaully clear and I renamed it 'counter' in my final script

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!