Support Variable Number of Inputs - MATLAB & Simulink (original) (raw)

Main Content

This example shows how to define a function that accepts a variable number of input arguments using varargin. The varargin argument is a cell array that contains the function inputs, where each input is in its own cell.

Create a function in a file named plotWithTitle.m that accepts a variable number of paired (x,y) inputs for the plot function and an optional title. If the function receives an odd number of inputs, it assumes that the last input is a title.

function plotWithTitle(varargin) if rem(nargin,2) ~= 0 myTitle = varargin{nargin}; numPlotInputs = nargin - 1; else myTitle = 'Default Title'; numPlotInputs = nargin; end

plot(varargin{1:numPlotInputs}) title(myTitle)

Because varargin is a cell array, you access the contents of each cell using curly braces, {}. The syntax varargin{1:numPlotInputs} creates a comma-separated list of inputs to the plot function.

Call plotWithTitle with two sets of (x,y) inputs and a title.

x = [1:.1:10]; y1 = sin(x); y2 = cos(x); plotWithTitle(x,y1,x,y2,'Sine and Cosine')

You can use varargin alone in an input argument list, or at the end of the list of inputs, such as

function myfunction(a,b,varargin)

In this case, varargin{1} corresponds to the third input passed to the function, and nargin returns length(varargin) + 2.

See Also

nargin | varargin

More About