Переменные varargin и varargout
Переменные varargin и varargout
Для упрощения записи аргументов функций их можно представить списком, который определяет специальная переменная varargin, являющаяся массивом ячеек. Она должна записываться строчными буквами и может включать в себя как аргументы, так и опции функций. Например, в приведенных ниже примерах:
function myplot(x,varargin)
plot(x,varargin{:}) function [s,varargout] = mysize(x)
nout = max(nargout.1)-1;
s = size(x);
for 1=1:nout, varargout(i) = {s(i)}; end
Эта переменная вбирает в себя все входные параметры и опции начиная со второго аргумента. При обращении к данной функции
myplot(sin(0:.1:1),'color'.[.5 .7 ,3],'linestyle',':')
varargin представляет массив ячеек размера 1x4, включающий а себя значения
'color', [.5 .7 .3], 'linestyle' u ':'.
Аналогично varagin переменная varargout объединяет любое число выходных параметров в массив ячеек. Эта переменная, кстати, как и varargin, должна быть последней в списке аргументов. Обычно эта переменная не создается при вызове функций. Приведенный ниже пример поясняет ее создание с помощью цикла:
function [s,varargout] = rnysize(x)
nout = max(nargout,l)-l:
s = size(x);
for i=1:nout.
varargout(i)= (s(i)}: end
Более подробно циклы будут рассмотрены в дальнейшем описании. В данном случае цикл использован для объединения всех параметров начиная со второго в значение переменной varargout.