How to make an animated stairstep graph?

3 views (last 30 days)
I have a stairstep graph (squarewave) plotted from an array, is it possible to make the graph plot in motion?
%%my code: x=[0:1:10]; a=[0 1 0 1 0 1 0 0 1 1 0]; stairs(x,a)

Accepted Answer

jonas
jonas on 14 Jun 2018
Edited: jonas on 14 Jun 2018
You can use the comet() function if you manipulate the data a bit.
x=[0:1:10];
a=[0 1 0 1 0 1 0 0 1 1 0];
xq=0:0.01:10;
aq = interp1(x,a,xq,'previous');
comet(xq,aq)
There is also a similar function called animatedline() which I have never tested. Or as a third, perhaps simplest solution, plot point-by-point in a for-loop using pause(t) in every loop.
  3 Comments
jonas
jonas on 15 Jun 2018
It does not appear to be possible. Option two works fine though:
x=[0:1:10];
a=[0 1 0 1 0 1 0 0 1 1 0];
%Increase resolution (step size determines speed of animation)
xq=0:0.0001:10;
aq = interp1(x,a,xq,'previous');
figure;
h=animatedline
%Change properties
set(h,'color','r','linewidth',2)
axis([0 10 0 1])
for k = 1:length(aq)
addpoints(h,xq(k),aq(k))
drawnow update
end

Sign in to comment.

More Answers (0)

Categories

Find more on Animation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!