Main Content

nargout

함수의 출력 인수 개수

설명

예제

nargout은 현재 실행 중인 함수 호출에 지정된 함수 출력 인수 개수를 반환합니다. 이 구문은 함수 본문에만 사용하십시오.

예제

nargout(fun)fun 함수 정의에 나타나는 출력값 개수를 반환합니다. 함수의 정의에 varargout이 포함된 경우 nargout은 출력값 개수를 음수로 반환합니다. 예를 들어, 함수 myFun이 출력 인수 y, z, varargout을 선언하는 경우 nargout('myFun')-3을 반환합니다.

funarguments 유효성 검사 블록을 사용하는 함수를 참조하는 경우, 반환되는 값은 함수 정의에서 음이 아닌 값으로 선언되는 위치 인수의 개수입니다.

예제

모두 축소

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

반환값 2개를 사용하여 subtract 함수를 다시 호출합니다.

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

함수가 반환할 수 있는 출력값 개수를 확인합니다.

이전 예제에서 만든 함수 subtract의 선언문에는 두 개의 출력값(difabsdif)이 있습니다.

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은 이 함수의 정의로부터 출력 인수 개수를 반환합니다. 함수 핸들, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

예: @rand

예: 'sortrows'

데이터형: char | function_handle

  • if 문의 경우처럼 함수를 표현식의 일부로 사용하면 MATLAB®은 출력 인수 하나를 사용해 함수를 호출합니다. 따라서, nargout 함수는 표현식 내에서 1을 반환합니다.

  • 함수 내에서 nargout 값이 0인지 확인하고 출력값을 지정할 경우, MATLAB은 ans를 채웁니다. 하지만, nargout을 확인하고 출력에 대한 값을 지정하지 않으면 MATLAB은 ans를 수정하지 않습니다.

확장 기능

버전 내역

R2006a 이전에 개발됨