MATLAB Function Reference
nargin, nargout

Return number of function arguments

Syntax

• ```n` `=` `nargin
n` `=` `nargin(fun)
n` `=` `nargout
n = nargout(fun)
```

Description

In the body of a function M-file, `nargin` and `nargout` indicate how many input or output arguments, respectively, a user has supplied. Outside the body of a function M-file, `nargin` and `nargout` indicate the number of input or output arguments, respectively, for a given function. The number of arguments is negative if the function has a variable number of arguments.

```nargin ``` returns the number of input arguments specified for a function.

```nargin(fun) ``` returns the number of declared inputs for the function `fun` or `-1` if the function has a variable number of input arguments. `fun` may be the name of a function, or a function handle that maps to a specific function.

```nargout ``` returns the number of output arguments specified for a function.

```nargout(fun) ``` returns the number of declared outputs for the function `fun`. `fun` may be the name of a function, or a function handle that maps to a specific function.

Examples

This example shows portions of the code for a function called `myplot`, which accepts an optional number of input and output arguments:

• ```function` `[x0, y0]` `=` `myplot(x, y, npts, angle, subdiv)
% MYPLOT`  `Plot` `a` `function.
%` `MYPLOT(x, y, npts, angle, subdiv)
%` `    The first two input arguments are
%`     `required;` `the` `other` `three` `have` `default` `values.
...
if` `nargin` `<` `5,` `subdiv` `=` `20;` `end
if` `nargin` `<` `4,` `angl`e `=` `10;` `end
if` `nargin` `<` `3,` `npts` `=` `25;` `end
...
if` `nargout` `==` `0
plot(x, y)
else
x0 = x;
y0 = y;
end
```

`inputname`, `varargin`, `varargout`, `nargchk`, `nargoutchk`