|
FreeMat
|
Section: Functions and Scripts
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.
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