How to gradually plot two simultaneous graphs in MATLAB gui?

Hello Everyone,
I am trying to plot two graphs in MATLAB gui simultaneously. Both of these should be plotted at the same time. I have tried looping them in in a single loop but it plots them in the same axes, whereas having two loops makes them plot one after other.
Here's my code:
a = 0:0.01:1;
x = sin(2*pi*3*a);
y = cos(2*pi*a);
figure(1)
for i = 1:length(a)
plot(a(1:i),x(1:i))
pause(0.05)
end
figure(2)
for i = 1:length(a)
plot(a(1:i),y(1:i))
pause(0.05)
end
Can anyone help me figure out a way to plot them both simultaneously?

 Accepted Answer

a = 0:0.01:1;
x = sin(2*pi*3*a);
y = cos(2*pi*a);
fig1 = figure(1);
ax1 = axes(fig1);
fig2 = figure(2);
ax2 = axes(fig2);
for i = 1:length(a)
plot(ax1, a(1:i),x(1:i))
plot(ax2, a(1:i),y(1:i))
pause(0.05)
end
But like I wrote before, I recommend that you read about animatedline()

3 Comments

It works for normal use but in matlab gui, we use
axes(handles.axes1)
can you tell how can I implement this into what you told?
I have tried
a = 0:0.01:1;
x = sin(2*pi*3*a);
y = cos(2*pi*a);
fig1 = handles.axes1;
ax1 = axes(fig1);
fig2 = handles.axes2;
ax2 = axes(fig2);
for i = 1:length(a)
plot(ax1, a(1:i),x(1:i))
plot(ax2, a(1:i),y(1:i))
pause(0.05)
end
but it gives some errors. Any help would be appreciated.
a = 0:0.01:1;
x = sin(2*pi*3*a);
y = cos(2*pi*a);
for i = 1:length(a)
plot(handles.axes1, a(1:i),x(1:i))
plot(handles.axes2, a(1:i),y(1:i))
pause(0.05)
end
Thanks a lot, Sir. This was a great help.

Sign in to comment.

More Answers (0)

Categories

Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange

Products

Release

R2016b

Community Treasure Hunt

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

Start Hunting!