## 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

    -->
    quit

Now, we call it through a function handle

    --> c = @cos

    c =

     @cos

    --> feval(c,pi/4)

    ans =

        0.7071

    -->
    quit

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

    -->
    quit

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