Иллюстрированный самоучитель по MatLab

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.