nargout

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

Синтаксис

Описание

пример

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

пример

nargout(fun) возвращает количество выходных параметров, которые появляются в fun функциональное определение. Если функция включает varargout в его определении, затем nargout возвращает отрицание количества выходных параметров. Например, если функциональный myFun объявляет выходные параметры yZ, и 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