Переменные
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.
Содержание раздела