varargin переменное число аргументов в списке входных аргументов Описание Функция, чьим последним входным аргументом является varargin, может быть вызвана с бОльшим числом входных аргументов, чем указано в списке входных аргументов. Аргументы вызова, переданные внутрь в форме ключевого слова varargin затем могут быть получены внутри функции в списке с именем varargin. Допустим, что ключевое слово varargin является n-ным аргументом в списке формальных входных аргументов, тогда, если функция вызывается с меньшим числом, чем n-1, входных аргументов, то список varargin не будет определён. Если же функция вызывается с n-1 аргументами, то список varargin будет пустым списком. function y = ex(varargin) может быть вызвана с любым числом аргументов. Внутри функции ex входные аргументы могут быть получены в varargin(i), i=1:length(varargin). Если же это не последний аргумент функции, то varargin будет обычным именем входного аргумента без особого значения. Общее число фактических входных аргументов даётся с помощью argn(2). Примечание Синтаксис именованных аргументов, такой как foo(...,key=value), не совместим с использованием varargin. Причина в том, что имена (то есть ключи), связанные со значениями, не хранятся в списке varargin. Рассмотрим пример: -->foo(a=1,b=2) 1. 2. -->foo(b=1,a=2) 1. 2. Результат одинаковый, но аргументы были переставлены. Примеры =1 then disp(varargin) end endfunction exampl(1) exampl() exampl(1,2,3) l=list('a',%s,%t); exampl(1,l(2:3)) ]]> Смотрите также argn function list varargout