Этот пример показывает, как задать функцию, которая принимает переменное количество входных параметров с помощью varargin
. Аргумент varargin
является массивом ячеек, который содержит входные параметры функции, где каждый вход находится в своей собственной ячейке.
Создайте функцию в файле с именем plotWithTitle.m
, который принимает переменное количество парных (x, y) входные параметры для функции plot
и дополнительного заголовка. Если функция получает нечетное число входных параметров, она принимает, что последний вход является заголовком.
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)
Поскольку varargin
является массивом ячеек, вы получаете доступ к содержимому каждой ячейки с помощью фигурных скобок, {}
. Синтаксис varargin{1:numPlotInputs}
создает список, разделенный запятыми входных параметров к функции plot
.
Вызовите plotWithTitle
с двумя наборами (x, y) входные параметры и заголовок.
x = [1:.1:10];
y1 = sin(x);
y2 = cos(x);
plotWithTitle(x,y1,x,y2,'Sine and Cosine')
Можно использовать один только varargin
в списке входных параметров, или в конце списка входных параметров, такой как
function myfunction(a,b,varargin)
В этом случае varargin{1}
соответствует третьему входу, переданному функции, и nargin
возвращает length(varargin) + 2
.