## VARARGOUT Variable Output Arguments

Section: Functions and Scripts

### Usage

FreeMat functions can return a variable number of output arguments by setting the last argument in the argument list to`varargout`

.
This special keyword indicates that the number of return values
is variable. The general syntax for a function that returns
a variable number of outputs is
function [out_1,...,out_M,varargout] = fname(in_1,...,in_M)

The function is responsible for ensuring that `varargout`

is
a cell array that contains the values to assign to the outputs
beyond `out_M`

. Generally, variable output functions use
`nargout`

to figure out how many outputs have been requested.

### Example

This is a function that returns a varying number of values depending on the value of the argument.

varoutfunc.m function [varargout] = varoutfunc switch(nargout) case 1 varargout = {'one of one'}; case 2 varargout = {'one of two','two of two'}; case 3 varargout = {'one of three','two of three','three of three'}; end

Here are some examples of exercising `varoutfunc`

:

--> [c1] = varoutfunc c1 = one of one --> [c1,c2] = varoutfunc c1 = one of two c2 = two of two --> [c1,c2,c3] = varoutfunc c1 = one of three c2 = two of three c3 = three of three