nargout

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

Синтаксис

nargout
nargout(fun)

Описание

пример

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