How to plot shifting square pulse

I cant figure out how to plot a graph of a square pulse shifting to the right across the x axis. This is currently what I have, but it just outputs a singular square wave, and I want a moving plot that shifts to the right with a step of 0.5. Any help is appreciated, thank you!
x = linspace(-5,5,10000);
pulse = rect(x,2);
%plot(x,pulse);
tau = 0;
for k = 1:length(x)
pause(3)
plot(x - tau,pulse);
drawnow;
tau = tau + 0.5;
end
function a = rect(t,len)
x = zeros(length(t));
for i=1:length(t)
if abs(t(i)) > len/2.0
x(i) = 0;
else
x(i) = 1;
end
end
a = x;
end

 采纳的回答

It is difficult to understand your code.
Here is a slightly simpler version:
x = linspace(-5, 5, 1000);
pulse = [0 ones(1,20) 0];
figure
for k = 1:numel(x)-numel(pulse)
plot(x(k:k+numel(pulse)-1), pulse)
axis([min(x) max(x) 0 1.5])
drawnow
end
Adapt it to do what you want.
Have fun with it!
.

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Graphics Performance 的更多信息

产品

版本

R2016b

标签

Community Treasure Hunt

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

Start Hunting!

Translated by