how can i draw input rectangular shape with specific iterations
이전 댓글 표시
n=100
for k=1:n
if k<=25
r(k)=1
elseif k>25&k<=50
r(k)=-1
elseif k>50&k<=75
r(k)=1
else
r(k)=-1
end
end
plot (k,r(k))

This appears when running:

But I want this figure:

댓글 수: 2
Star Strider
2015년 12월 19일
Image Analyst
2015년 12월 19일
In general, you would not use & in that situation (your "if" test), you'd use &&, though in this case it won't matter.
답변 (2개)
Star Strider
2015년 12월 19일
sqwv = @(x) 1.*(((x > 0) & (x < 25)) | ((x > 50) & (x < 75))) - 1.*(((x > 25) & (x < 50)) | ((x > 75) & (x < 100)));
x = 0:100;
y = sqwv(x);
figure(1)
plot(x, y,'-b')
axis([0 100 -1.5 1.5])
Image Analyst
2015년 12월 19일
0 개 추천
You can use repmat(), like I do in my attached demo.
Or, if you have the Signal Processing Toolbox, you can use the square() function:
x = square(t,duty) generates a square wave with specified duty cycle, duty, which is a number between 0 and 100. The duty cycle is the percent of the period in which the signal is positive.
댓글 수: 1
Star Strider
2015년 12월 19일
카테고리
도움말 센터 및 File Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!