Section: FreeMat Functions
feval function executes a function using its name.
The syntax of feval is
[y1,y2,...,yn] = feval(f,x1,x2,...,xm)
where f is the name of the function to evaluate, and
xi are the arguments to the function, and yi are the
return values.
Alternately, f can be a function handle to a function
(see the section on function handles for more information).
Finally, FreeMat also supports f being a user defined class
in which case it will atttempt to invoke the subsref method
of the class.
feval to call the cos
function indirectly.
--> feval('cos',pi/4)
ans =
<double> - size: [1 1]
0.7071067811865476
Now, we call it through a function handle
--> c = @cos c = <function ptr array> - size: [1 1] @cos --> feval(c,pi/4) ans = <double> - size: [1 1] 0.7071067811865476
Here we construct an inline object (which is a user-defined class)
and use feval to call it
--> afunc = inline('cos(t)+sin(t)','t')
afunc =
inline function object
f(t) = cos(t)+sin(t)
--> feval(afunc,pi)
ans =
<double> - size: [1 1]
-0.9999999999999999
--> afunc(pi)
ans =
<double> - size: [1 1]
-0.9999999999999999
In both cases, (the feval call and the direct invokation), FreeMat
calls the subsref method of the class, which computes the requested
function.