Error using plot Invalid data argument.

i am trying to plot x(t) = 2[u(t)-u(t-1)]
here are my steps including function y = U(t)
function y = U(t)
t = -3:0.0001:3;
y= 1*(t>=0);
plot(t,U(t))
xlabel ('t')
ylabel('y')
axis([-3 3 -1 2])
grid on
title('plot of the unit step function U(t)')
end
x(t) = 2[U(t)-U(t-1)]
x = @(t) 2*(U(t)-U(t-1))
plot(t,x(t))

1 Comment

What is the error you are getting? Make sure you define subfunctions at the end of the script.

Sign in to comment.

Answers (1)

Adam Danz
Adam Danz on 28 Mar 2020
Edited: Adam Danz on 31 Mar 2020
function y = U(t)
t = -3:0.0001:3;
y= 1*(t>=0);
plot(t,U(t))
% ^^^^problem
You're recursively calling the U(t) function from within the function.
When sharing an error message, please share the entire copy-pasted message.

3 Comments

x(t) = 2[U(t)-U(t-1)]
Is invalid syntax in MATLAB. MATLAB does not have any implied multiplication at all, not even in the symbolic toolbox.
That line is also invalid because t are floating point numbers rather than index values.
But U is a function, so it doesn't matter that t is not index values.

Sign in to comment.

Asked:

on 28 Mar 2020

Commented:

on 1 Apr 2020

Community Treasure Hunt

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

Start Hunting!