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

1 ビュー (過去 30 日間)
Salvatore Mazzarino 2013 年 11 月 12 日
コメント済み: Roger Stafford 2013 年 11 月 12 日
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?

サインインしてコメントする。

### 回答 (1 件)

Roger Stafford 2013 年 11 月 12 日
n = a:b;
y = double(((n>=n0)&(flag==0))|((n<=n0)&(flag~=0)));
##### 2 件のコメント表示非表示 1 件の古いコメント
Roger Stafford 2013 年 11 月 12 日
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"?

サインインしてコメントする。

### Community Treasure Hunt

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

Start Hunting!