MATLAB Function Reference
varargin, varargout

Pass or return variable numbers of arguments

Syntax

• ```function varargout = foo(n)
function y = bar(varargin)
```

Description

```function varargout = foo(n) ``` returns a variable number of arguments from function `foo.m`.

```function y = bar(varargin) ``` accepts a variable number of arguments into function `bar.m`.

The `varargin` and `varargout` statements are used only inside a function M-file to contain the optional arguments to the function. Each must be declared as the last argument to a function, collecting all the inputs or outputs from that point onwards. In the declaration, `varargin` and `varargout` must be lowercase.

Examples

The function

• ```function myplot(x,varargin)
plot(x,varargin{:})
```

collects all the inputs starting with the second input into the variable `varargin`. `myplot` uses the comma-separated list syntax` varargin{:}` to pass the optional parameters to `plot`. The call

• ```myplot(sin(0:.1:1),'color',[.5 .7 .3],'linestyle',':')
```

results in `varargin` being a 1-by-4 cell array containing the values `'color'`,
[.5 .7 .3], `'linestyle'`, and `':'`.

The function

• ```function [s,varargout] = mysize(x)
nout = max(nargout,1)-1;
s = size(x);
for k=1:nout, varargout(k) = {s(k)}; end
```

returns the size vector and, optionally, individual sizes. So

• ```[s,rows,cols] = mysize(rand(4,5));
```

returns `s = [4 5], rows = 4, cols = 5`.

`nargin`, `nargout`, `nargchk`, `nargoutchk`, `inputname`