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. The mySize функция может вернуть неопределенное количество дополнительных выходов.

Входные параметры

свернуть все

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

Пример: @rand

Пример: 'sortrows'

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

Совет

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

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

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

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