Clear Filters
Clear Filters

Matlab Invalid Data Argument

115 views (last 30 days)
Callum Stewart
Callum Stewart on 16 Oct 2020
Commented: Callum Stewart on 16 Oct 2020
u = @(t) (t>=0);
r = @(t) t.*u;
x = @(t) r(t)-r(t-1)-3*u(t-1)-2*r(t-3)-r(t-4)-r(t-5)-u(t-7);
t = [-2:0.01:7];
plot(t,x)
Why am a getting invalid data argument as error when plotting>
[SL: formatted code as code]

Answers (2)

Steven Lord
Steven Lord on 16 Oct 2020
Let's look at your code section by section.
u = @(t) (t>=0);
r = @(t) t.*u;
This will not work as written. You cannot multiply a number and a function handle. What you can do instead is to multiply a number and the result of evaluating a function handle.
r = @(t) t.*u(t);
In the next section there is a similar problem.
x = @(t) r(t)-r(t-1)-3*u(t-1)-2*r(t-3)-r(t-4)-r(t-5)-u(t-7);
t = [-2:0.01:7];
plot(t,x)
The plot function will not accept a function handle as its second input, but it can accept the result of evaluating a function handle.
plot(t, x(t))

Karolis Poskus
Karolis Poskus on 16 Oct 2020
Hello,
To plot anonymous function use:
doc fplot

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!