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?

 Risposta accettata

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 Commenti

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.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Creating, Deleting, and Querying Graphics Objects in Centro assistenza e File Exchange

Prodotti

Release

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by