Main Content


Evaluate function



[y1,...,yN] = feval(fun,x1,...,xM) evaluates a function using its name or its handle, and using the input arguments x1,...,xM.

The feval function follows the same scoping and precedence rules as calling a function handle directly. For more information, see Create Function Handle.


collapse all

Round the value of pi to the nearest integer using the name of the function.

fun = 'round';
x1 = pi;
y = feval(fun,x1)
y = 3

Round the value of pi to two digits to the right of the decimal point.

x2 = 2;
y = feval(fun,x1,x2)
y = 3.1400

Input Arguments

collapse all

Function to evaluate, specified as a function name or a handle to a function. The function accepts M input arguments, and returns N output arguments. To specify fun as a function name, do not include path information.

Invoking feval with a function handle is equivalent to invoking the function handle directly.

Example: fun = 'cos'

Example: fun = @sin

Inputs to the evaluated function. The types of the inputs depend on the function, fun.

Output Arguments

collapse all

Outputs from evaluated function. The types of the outputs depend on the function, fun.


  • If you have a function handle, it is not necessary to use feval because you can invoke the function handle directly. The results of the following statements are equivalent.

    fh = @eig;
    [V,D] = fh(A)
    [V,D] = feval(@eig,A)
  • To evaluate a nested or local function using feval, use a function handle instead of the function name. For more information, see Call Local Functions Using Function Handles.

Extended Capabilities

Version History

Introduced before R2006a