Which could be the smartest way to do what this function does

I should have to graph step discret signal. This is the function.
function y = step(a,b,n0,flag)
n = a:b;
y = zeros(1,length(n));
if flag == 0
y(find(n==n0):length(n)) = 1;
else
y(1:find(n==n0)) = 1;
end
stem(n,y), grid on;
xlabel('n');
ylabel('u[n]');
return
Do you think it exists a smarter way to create what I have done wihtout using the if clause?

Answers (1)

n = a:b;
y = double(((n>=n0)&(flag==0))|((n<=n0)&(flag~=0)));

2 Comments

Do you think it exist a way without using the flag?
As you have the 'step' function defined, the 'flag' input is essential for determining whether it is the beginning portion of a:b or its end portion that is set to 1's. How could you do that "without using the flag"?

This question is closed.

Tags

Asked:

on 12 Nov 2013

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!