В этом примере показано, как определить функцию, которая возвращает переменное число выходных аргументов с помощью 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 2MATLAB ® присваивает значения выходам в соответствии с их порядком в varargout массив. Например, first == varargout{1}.
Вы можете использовать varargout только в списке выходных аргументов или в конце списка выходных данных, например
function [x,y,varargout] = myfunction(a,b)
В этом случае varargout{1} соответствует третьему выводу, который возвращает функция, и nargout прибыль length(varargout) + 2.