exponenta event banner

Поддерживаемое переменное количество выходов

В этом примере показано, как определить функцию, которая возвращает переменное число выходных аргументов с помощью varargout. Продукция varargout - массив ячеек, содержащий выходные сигналы функции, где каждый выходной сигнал находится в собственной ячейке.

Создание функции в файле с именем magicfill.m присваивает магический квадрат каждому запрошенному выводу.

function varargout = magicfill
   nOutputs = nargout;
   varargout = cell(1,nOutputs);

   for k = 1:nOutputs
      varargout{k} = magic(k);
   end

Индексация фигурными скобками {} обновляет содержимое ячейки.

Звонить magicfill и запросить три выходных документа.

[first,second,third] = magicfill
first =
     1

second =
     1     3
     4     2

third =
     8     1     6
     3     5     7
     4     9     2

MATLAB ® присваивает значения выходам в соответствии с их порядком в varargout массив. Например, first == varargout{1}.

Вы можете использовать varargout только в списке выходных аргументов или в конце списка выходных данных, например

function [x,y,varargout] = myfunction(a,b)

В этом случае varargout{1} соответствует третьему выводу, который возвращает функция, и nargout прибыль length(varargout) + 2.

См. также

|

Связанные примеры

Подробнее