how to subplot n figures (pcolor) using for loop

Hello everyone.
I have n.fig saved files (pcolor figures) that I want to plot in one new subplot (n X 2). Can anyone please help me out here? I will be really really grateful :)
clear all
clc
% Open .fig
field = 'C:\xxxxxxx';
rep = fullfile(field);
if exist(rep, 'file')~=7
error('field does not exist');
else
ext = '*.fig';
chemin = fullfile(rep,ext);
list = dir(chemin);
nFig = numel(list);
newAxes = [];
% Open each figure and copy content
for i = 1:nFig
% Open fig-i
filename = fullfile(rep,list(i).name);
fighand = openfig(filename,'invisible');
% Get axis handle (assumption: only 1 axes in figure)
axHand = findobj(fighand, 'Type', 'Axes');
if i==1
fh = figure();
newAxes = copyobj(axHand, fh);
hold(newAxes, 'on')
h = newAxes.Children;
else
h=subplot(nFig,2,i);
end
% % Close fig-i
close(fighand)
end
end

4 Comments

Use hold on after the subplot inside the if ...else...end loop.
% if true
% code
% end
h = subplot(nFig,2,i);
plothandles(i) = h;
hold(get(plothandles(i)),'on');
Thank you for your help but it doesn't work. I got this message :
"Error in Untitled4 (line 38)
hold(get(plothandles(i)),'on');
83 error(message('MATLAB:hold:UnknownOption'));"
Just use hold on without get and plothandles shown below
% if true
% code
% end
h(i) = subplot(nFig,2,i);
hold(h(i),'on');
You can also use nexttile and tiledlayout instead of subplot as
% if true
% code
%end
tiledlayout(nFig,2)
nexttile
plot(...)
Within the loop

Sign in to comment.

Answers (0)

Asked:

on 29 Sep 2020

Edited:

on 30 Sep 2020

Community Treasure Hunt

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

Start Hunting!