MATLAB Programming Fundamentals - MathWorks

(やまだぃちぅ) #1

Support Variable Number of Outputs


This example shows how to define a function that returns a variable number of output
arguments using varargout. Output varargout is a cell array that contains the
function outputs, where each output is in its own cell.

Create a function in a file named magicfill.m that assigns a magic square to each
requested output.

function varargout = magicfill
nOutputs = nargout;
varargout = cell(1,nOutputs);

for k = 1:nOutputs
varargout{k} = magic(k);
end

Indexing with curly braces {} updates the contents of a cell.

Call magicfill and request three outputs.

[first,second,third] = magicfill

first =
1

second =
1 3
4 2

third =
8 1 6
3 5 7
4 9 2

MATLAB assigns values to the outputs according to their order in the varargout array.
For example, first == varargout{1}.

You can use varargout alone in an output argument list, or at the end of the list of
outputs, such as

function [x,y,varargout] = myfunction(a,b)

21 Function Arguments

Free download pdf