I'm trying to plot the signal u(t)-u(t-1) without heaviside in MATLAB. I've tried to use the if loop but couldn't figure it out.

1 件のコメント

Fangjun Jiang
Fangjun Jiang 2018 年 10 月 3 日
Not clear.

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

 採用された回答

Star Strider
Star Strider 2018 年 10 月 3 日

3 投票

You can use a ‘logical indexing’ approach:
ustp = @(t) +(t>0); % Simple Unit Step Function
t = linspace(-5, 5);
figure
plot(t, ustp(t)-ustp(t-1))
grid
I will let you figure out how it works.

3 件のコメント

Anurag Paul
Anurag Paul 2021 年 8 月 17 日
It works by using ‘logical indexing’, so that here, if ‘t’ is greater than 0, the logical comparison returns 1 for all values of ‘t’ greater than 0. When used in computations, the logical 1 becomes numerical 1, so the double function call is not necessary. - copied👆
Vicky
Vicky 2023 年 9 月 19 日
Can you explain how you wrote "@(t) +(t>0)"? It worked perfectly but I'm unsure what the @ is doing here. Thank you so much!
Star Strider
Star Strider 2023 年 9 月 19 日
@Vicky — That is an anonymous function. It works the same way other functions do, and can be called similarly. The ‘@’ creates its function handle.
See the documentation on Anonymous Functions and What is a Function Handle? for details.

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Graphics Performance についてさらに検索

製品

リリース

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by