Moving plot of a sine wave.
    25 ビュー (過去 30 日間)
  
       古いコメントを表示
    
Hi all, 
Trying to create a moving plot of a sine wave. I'm essentially after the sine wave to start on the screen showing two cycles and then have the sine wave move while the plot moves to the right by two cycles and then back to the left by two cycles. I have this bit below to animate the sin wave but can't seem to get the plot to move as well. Cheers!
t = 0:0.1:4*pi;
y = sin(t);
for k = 1:length(t)
    plot(t(k),y(k),'x')
    hold on
    plot(t(1:k),y(1:k))
    axis([0 4*pi -1 1])
    grid on
    pause(0.1)
    if k ~= length(t)
        clf
    end
end
0 件のコメント
回答 (1 件)
  Mrunmayee Gaikwad
    
 2020 年 9 月 23 日
        Hi,
To make the plot move, you will need to keep updating the ‘t’ vector in for/while loop and then plot the sine wave.  
For example, this will move the plot to the right: 
for j = 1:length(t) 
    plot(t,y) 
    axis([0 8*pi -1 1])   % moving 2 cycles would mean the end would be 4pi + 2*2pi = 8pi 
                          % you can keep the axis endpoints according to your need 
    grid on 
    pause(0.1) 
    hold on 
     if j ~= length(t) 
        clf 
     end 
    t = t + 0.1;  % used 0.1 increment as elements in t have 0.1 difference 
                  % Also, as y is already defined earlier, this change in t will not change y   
end 
To move to left you can vary j as: j = length(t):-1:1 
参考
カテゴリ
				Help Center および File Exchange で Animation についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

