Indicator Function Error

8 views (last 30 days)
Ammar
Ammar on 3 Nov 2011
I am trying to define a piece-wise function over several different intervals. However, the indicator function won't let the function evaluate for a specified input value. It keeps telling me that input argument a is undefined. I can't seem to figure out what I am doing wrong though. Here is what I have:
v = @(t,a,b) (t>=a) & (t<b);
f=@(t) 0.*v(t<0) + 2*t.*v(0<=t & t<0.5) + 0.*v(t==0.5) + ...
(2*t-2).*v(t,0.5,1) + 0.*v(t>=1)
t=[0:0.01:1];
The program won't let me evaluate f(t). Also, am I allowed to set the intervals as logicals or do I have to have values? This is not covered in my book or in my lecture notes. Thanks for the help.

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 3 Nov 2011
Your v is an anonymous function. It has three input arguments.
In your f (also an anonymous function), there are v(t<0), v(0<=t & t<0.5), v(t==0.5) and v(t>=1). All just have one input argument. That is why it complains that the second input argument a is not provided.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!