フィルターのクリア

How can i draw two animated plots on each subplots at the same time?

65 ビュー (過去 30 日間)
Le Dung
Le Dung 2017 年 12 月 15 日
回答済み: Riccardo Rosati 2018 年 6 月 4 日
Hi everyone! Now, i want to draw two animated plots on each subplots at the same time. You can see my code below. But, when i use this code, of course, Matlab will return two subplots and it will draw "k" line after drew "r" line. So, how can i do to draw two animated plots (in this case is two lines) at the same time? Thank you so much. My code:
x1=linspace(0,20,201);
y1=sin(x1);
x2=linspace(0,20,201);
y2=cos(x2);
sub1=subplot(2,1,1);
hold on
axis([0 21 -1.1 1.1]);
ani1=animatedline('Color','r');
for i=1:length(x1)
addpoints(ani1,x1(i),y1(i));
drawnow
pause(0.01);
end
subplot(2,1,2)
hold on
axis([0 21 -1.1 1.1]);
ani2=animatedline('Color','k');
for j=1:length(x1)
addpoints(ani2,x1(j),y1(j))
drawnow
pause(0.01);
end

採用された回答

Jos (10584)
Jos (10584) 2017 年 12 月 15 日
Merge the for-loops! This works here because x1,y1, x2, and y2 are all the same length. There is also no need for hold on)
x1=linspace(0,20,201);
y1=sin(x1);
x2=linspace(0,20,201);
y2=cos(x2);
sub1=subplot(2,1,1);
axis([0 21 -1.1 1.1]);
ani1=animatedline('Color','r');
subplot(2,1,2)
axis([0 21 -1.1 1.1]);
ani2=animatedline('Color','k');
for k=1:length(x1)
addpoints(ani1,x1(k),y1(k)) ;
addpoints(ani2,x2(k),y2(k)) ;% I assume you meant to plot (x2,y2)
drawnow
pause(0.01);
end
  3 件のコメント
Jos (10584)
Jos (10584) 2017 年 12 月 15 日
I assume there is a relationship between x1 and x2? For instance, both are time points. You can use interp1 to get, for instance, y2 values for each point in x1, like this:
x1 = linspace(0,20,200)
y1 = sin(x1) ;
x2 = linspace(0,20,100)
y2 = cos(x2) ;
y2_int = interp1(x2,y2,x1) ;
and now use x1 as the x coordinate for both animations.
Le Dung
Le Dung 2017 年 12 月 15 日
It is very kind of you. Thank you so much. And, you can help me to my question on this link: https://www.mathworks.com/matlabcentral/answers/373112-how-can-i-specify-which-subplot-that-i-want-to-plot-on-it

サインインしてコメントする。

その他の回答 (1 件)

Riccardo Rosati
Riccardo Rosati 2018 年 6 月 4 日
If I create the number of subplot iteratively (because this is for a GUI where I manually insert the number of signals that I want to plot), how can I do this? I should generate iteratively also the animated lines, but how?
Thanks in advance for the reply.

カテゴリ

Help Center および File ExchangeAnimation についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by