Переменные 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.



Содержание раздела