How do I add data to multiple figure windows in one loop?

3 vues (au cours des 30 derniers jours)
Janna Hinchliff
Janna Hinchliff le 3 Avr 2019
Réponse apportée : Rik le 3 Avr 2019
I want to make a loop where I plot two different parameters on two different figure windows, such that each iteration of the loop adds one plot to one window and another plot to a second window. For the one plot case I am using
fig4 = figure;
for ii = 1:length(plotmatrixcell)
plot(plotmatrixcell{ii}{2}(:,1),plotmatrixcell{ii}{2}(:,2),'r*')
hold on
end
which plots the data from each loop in the same figure window. I want to have something like this:
fig4 = figure;
fig5 = figure;
for ii = 1:length(plotmatrixcell)
% fig4
plot(plotmatrixcell{ii}{2}(:,1),plotmatrixcell{ii}{2}(:,2),'r*')
xlabel('Distance from VCSEL (mm)')
ylabel('Beam radius (mm)')
hold on
% fig5
currentfit = polyfit(plotmatrixcell{ii}{2}(:,1),plotmatrixcell{ii}{2}(:,2),1);
fitplot = polyval(currentfit, 0:10);
plot(0:10,fitplot,'k.--')
hold on
end
so that the first plot in each iteration is in one figure window and the second plot in each iteration is in a second figure window. How can I do this?

Réponse acceptée

Rik
Rik le 3 Avr 2019
Use explicit handles:
fig4=figure(4);
fig5=figure(5);
%'NextPlot','add' is equivalent to hold('on')
ax4=axes('Parent',fig4,'NextPlot','add');
ax5=axes('Parent',fig5,'NextPlot','add');
for ii = 1:length(plotmatrixcell)
% fig4
plot(plotmatrixcell{ii}{2}(:,1),plotmatrixcell{ii}{2}(:,2),'r*',...
'Parent',ax4)
% fig5
currentfit = polyfit(plotmatrixcell{ii}{2}(:,1),plotmatrixcell{ii}{2}(:,2),1);
fitplot = polyval(currentfit, 0:10);
plot(0:10,fitplot,'k.--',...
'Parent',ax5)
end
xlabel(ax4,'Distance from VCSEL (mm)')
ylabel(ax4,'Beam radius (mm)')

Plus de réponses (0)

Catégories

En savoir plus sur Interactive Control and Callbacks dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by