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.


Number of function output arguments




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

nargout(fx) returns the number of outputs that appear in the definition statement of function fx. If the function includes varargout in its definition, then nargout returns the negative of the number of outputs. For example, if function foo declares outputs a, b, and varargout, then nargout('foo') returns -3.

Input Arguments


Either a function handle or a character vector in single quotes that specifies the name of a function.


collapse all

Create a function in a file named subtract.m that calculates a second return value only when requested.

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

Determine how many outputs a function can return.

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

fx = 'subtract';
ans =

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

Define a function in a file named mysize.m that returns a vector of dimensions from the size function and the individual dimensions using varargout.

function [sizeVector,varargout] = mysize(x)
   sizeVector = size(x);
   varargout = cell(1,nargout-1);
   for k = 1:length(varargout)
      varargout{k} = sizeVector(k);

At the command line, query how many outputs mysize can return.

fx = 'mysize';
ans =

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

More About

collapse all


  • When you use a function as part of an expression, MATLAB® calls the function with one output argument, so nargout within the function returns 1. For example, given the following if statement and the subtract function defined in the Examples section, the value of nargout within the subtract function is 1.

    a = 1;
    b = 2;
    if subtract(a,b) < 0
       disp('Result is negative')

Introduced before R2006a

Was this topic helpful?