VARARGIN Variable Input Arguments
Section: Functions and Scripts
Usage
FreeMat functions can take a variable number of input arguments by setting the last argument in the argument list tovarargin
.
This special keyword indicates that all arguments to the
function (beyond the last non-varargin
keyword) are assigned
to a cell array named varargin
available to the function.
Variable argument functions are usually used when writing
driver functions, i.e., functions that need to pass arguments
to another function. The general syntax for a function that
takes a variable number of arguments is
function [out_1,...,out_M] = fname(in_1,..,in_M,varargin)
Inside the function body, varargin
collects the arguments
to fname
that are not assigned to the in_k
.
Example
Here is a simple wrapper tofeval
that demonstrates the
use of variable arguments functions.
wrapcall.m function wrapcall(fname,varargin) feval(fname,varargin{:});
Now we show a call of the wrapcall
function with a number
of arguments
--> wrapcall('printf','%f...%f\n',pi,e) 3.141593...2.718282
A more serious driver routine could, for example, optimize
a one dimensional function that takes a number of auxilliary
parameters that are passed through varargin
.