FEVAL Evaluate a Function

Section: FreeMat Functions

Usage

The 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.

Example

Here is an example of using feval to call the cos function indirectly.
--> feval('cos',pi/4)

ans = 
    0.7071 

Now, we call it through a function handle

--> c = @cos

c = 
 @cos
--> feval(c,pi/4)

ans = 
    0.7071 

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 = 
   -1.0000 

--> afunc(pi)

ans = 
   -1.0000 

In both cases, (the feval call and the direct invokation), FreeMat calls the subsref method of the class, which computes the requested function.