exponenta event banner

nargout

Количество выходных аргументов функции

Описание

пример

nargout возвращает количество выходных аргументов функции, указанных в вызове исполняемой функции. Используйте этот синтаксис только в теле функции.

пример

nargout(fun) возвращает количество выходов, которые появляются в fun определение функции. Если функция включает varargout в его определении, то nargout возвращает отрицательное значение числа выходов. Например, если функция myFun объявляет выходные данные y, z, и varargout, то nargout('myFun') прибыль -3.

Примеры

свернуть все

В файле с именем subtract.m, создайте функцию, которая вычисляет второе возвращаемое значение, absdif, только по запросу.

type subtract.m
function [dif,absdif] = subtract(y,x)
    dif = y-x;
    if nargout > 1
        disp('Calculating absolute value')
        absdif = abs(dif);
    end
end

В командной строке вызовите subtract с одним возвращаемым значением.

diff = subtract(42,13)
diff = 29

Позвоните в subtract снова с двумя возвращаемыми значениями.

[dif,absdif] = subtract(2,5)
Calculating absolute value
dif = -3
absdif = 3

Определите, сколько выходов может вернуть функция.

Функция subtract созданный в предыдущем примере имеет два вывода в операторе объявления (dif и absdif).

fun = @subtract;
nargout(fun)
ans = 2

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

В файле с именем mySize.m, создайте функцию, которая возвращает вектор размеров из size функция и отдельные измерения с использованием varargout.

type mySize.m
function [sizeVector,varargout] = mySize(x)
    sizeVector = size(x);
    varargout = cell(1,nargout-1);
    for k = 1:length(varargout)
        varargout{k} = sizeVector(k);
    end
end

Запрос количества выходных данных mySize может вернуться.

fun = 'mySize';
nargout(fun)
ans = -2

Знак минус указывает, что второй выход равен varargout. mySize функция может возвращать неопределенное количество дополнительных выходов.

Входные аргументы

свернуть все

Функция, для которой nargout возвращает число выходных аргументов из определения, указанного как дескриптор функции, символьный вектор или строковый скаляр.

Пример: @rand

Пример: 'sortrows'

Типы данных: char | function_handle

Совет

  • При использовании функции как части выражения, например, if оператор, то MATLAB ® вызывает функцию с одним выходным аргументом. Следовательно, nargout функция возвращает 1 в выражениях.

  • Если проверить наличие nargout значение 0 в функции, и вы указываете значение вывода, MATLAB заполняет ans. Однако, если вы проверяете nargout и не указывайте значение для вывода, то MATLAB не изменяет ans.

Расширенные возможности

.
Представлен до R2006a