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.

 Risposta accettata

Star Strider
Star Strider il 3 Ott 2018
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 Commenti

Anurag Paul
Anurag Paul il 17 Ago 2021
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 il 19 Set 2023
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 il 19 Set 2023
@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.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Graphics Performance in Centro assistenza e File Exchange

Prodotti

Release

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by