# nargin

Number of function input arguments

## Syntax

``nargin``
``nargin(fun)``

## Description

example

````nargin` returns the number of function input arguments given in the call to the currently executing function. Use this syntax in the body of a function only. When using an `arguments` validation block, the value returned by `nargin` within a function is the number of positional arguments provided when the function is called. For more information, see Use nargin Functions During Argument Validation.```

example

````nargin(fun)` returns the number of input arguments that appear in the `fun` function definition. If the function includes `varargin` in its definition, then `nargin` returns the negative of the number of inputs. For example, if function `myFun` declares inputs `a`, `b`, and `varargin`, then `nargin('myFun')` returns `-3`. If `fun` refers to a function that uses an `arguments` validation block, then the returned value is the number of declared positional arguments in the function definition as a non-negative value. ```

## Examples

collapse all

In a file named `addme.m`, create a function that accepts up to two inputs. Use `nargin` in the body of the function to determine the number of inputs.

`type addme.m`
```function c = addme(a,b) switch nargin case 2 c = a + b; case 1 c = a + a; otherwise c = 0; end end ```

At the command prompt, call the `addme` function with two inputs.

`c = addme(13,42)`
```c = 55 ```

Call the function with one input.

`c = addme(13)`
```c = 26 ```

Determine how many inputs a function accepts.

The function `addme` created in the previous example, has two inputs in its declaration statement (`a` and `b`). Define the name of the function as a character vector and use it as input for `nargin`.

```fun = 'addme'; nargin(fun)```
```ans = 2 ```

Determine how many inputs a function that uses `varargin` can accept.

In a file named `mynewplot.m`, create a function that accepts numeric inputs `x` and `y` and any number of additional plot inputs using `varargin`.

`type mynewplot.m`
```function mynewplot(x,y,varargin) figure plot(x,y,varargin{:}) title('My New Plot') end ```

Query how many inputs `newplot `can accept.

```fx = 'mynewplot'; nargin(fx)```
```ans = -3 ```

The minus sign indicates that the third input is `varargin`. The `mynewplot` function can accept an indeterminate number of additional input arguments.

## Input Arguments

collapse all

Function for which `nargin` returns the number of input arguments from its definition, specified as a function handle, a character vector, or a string scalar.

Example: `@cos`

Example: `'plot'`

Data Types: `char` | `function_handle`

## Version History

Introduced before R2006a