Этот пример показывает, как задать функцию, которая возвращает переменное количество выходных аргументов с помощью 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
.