hold on for double plots in one loop

22 views (last 30 days)
Zeynab Mousavikhamene
Zeynab Mousavikhamene on 5 Nov 2019
Commented: ME on 5 Nov 2019
I am making two plots in a for loop one after an other. When the loop goes for the next i, I need to hold on the plot becaue I want to plot x1 and y1 of the i=1 to i=n in one axis but because there is an other plot after it, I do not know how to do that so that x1 and y1 of i=1 to n are plotted in one figure and x2 and y2 of i=1 to n are plotted in an nother figure.
For i=1:n
do some calc.
figure
plot(x1,y1)
if I hold on here, the next figure may have be plotted in the first one. But I need to have figures of i=1 to n plotted in one axis.
figure
plot(x2,y2)
end

Answers (2)

Takumi
Takumi on 5 Nov 2019
Edited: Takumi on 5 Nov 2019
Try changing the plot target by referring to the link below.

ME
ME on 5 Nov 2019
You just need to move the figure command or you’ll get two new figure windows. This would be something like:
figure
for i=1:n
do some calc.
plot(x1,y1)
hold on
plot(x2,y2)
end
or alternatively put both of the plotting commands into one:
plot(x1,y1,x2,y2)
  2 Comments
Zeynab Mousavikhamene
Zeynab Mousavikhamene on 5 Nov 2019
Edited: Zeynab Mousavikhamene on 5 Nov 2019
@ME thanks but it was not answer to my question. I said in the question, I want to have TWO plots one is for x1 and y1 and the other one is for x2 and y2. For x1 and y1 of ALL i from 1 to n I want to plot x1 and y1 on the same figure and for ALL i from 1 to n I want to plot x2 and y2 on an other figure.
ME
ME on 5 Nov 2019
Apologies, I think I see what you mean now. That just shows I shouldn't answer questions before a morning coffee!
I think this should do what you want:
for i=1:n
do some calc.
figure(1); hold on;
plot(x1,y1)
figure(2); hold on;
plot(x2,y2)
end

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!