Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

nargout

Number of function output arguments

Syntax

nargout
nargout(fun)

Description

example

nargout returns the number of function output arguments specified in the call to the currently executing function. Use this syntax in the body of a function only.

example

nargout(fun) returns the number of outputs that appear in the fun function definition. If the function includes varargout in its definition, then nargout returns the negative of the number of outputs. For example, if function myFun declares outputs y, z, and varargout, then nargout('myFun') returns -3.

Examples

collapse all

In a file named subtract.m, create a function that calculates a second return value, absdif, only if requested.

type subtract.m
function [dif,absdif] = subtract(y,x)
    dif = y-x;
    if nargout > 1
        disp('Calculating absolute value')
        absdif = abs(dif);
    end
end

At the command prompt, call the subtract function with one return value.

diff = subtract(42,13)
diff = 29

Call the subtract function again with two return values.

[dif,absdif] = subtract(2,5)
Calculating absolute value
dif = -3
absdif = 3

Determine how many outputs a function can return.

The function subtract created in the previous example has two outputs in its declaration statement (dif and absdif).

fun = @subtract;
nargout(fun)
ans = 2

Determine how many outputs a function that uses varargout can return.

In a file named mySize.m, create a function that returns a vector of dimensions from the size function and the individual dimensions using varargout.

type mySize.m
function [sizeVector,varargout] = mySize(x)
    sizeVector = size(x);
    varargout = cell(1,nargout-1);
    for k = 1:length(varargout)
        varargout{k} = sizeVector(k);
    end
end

Query how many outputs mySize can return.

fun = 'mySize';
nargout(fun)
ans = -2

The minus sign indicates that the second output is varargout. The mySize function can return an indeterminate number of additional outputs.

Input Arguments

collapse all

Function for which nargout returns the number of output arguments from its definition, specified as a function handle or a character vector.

Example: @rand

Example: 'sortrows'

Data Types: char | function_handle

Tips

  • When you use a function as part of an expression, such as an if statement, MATLAB® calls the function with one output argument. Therefore, the nargout function returns 1 within expressions.

  • If you check for a nargout value of 0 within a function and you specify the value of the output, MATLAB populates ans. However, if you check nargout and do not specify a value for the output, MATLAB does not modify ans.

Extended Capabilities

Introduced before R2006a

Was this topic helpful?