Переменные 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,
1
)
-
1
:
s
=
size(x);
for
i
=
1
:nout.
varargout(i)
=
(s(i)}:
end
Более подробно циклы будут рассмотрены в дальнейшем описании. В данном случае цикл использован для объединения всех параметров начиная со второго в значение переменной varargout.