다음: 변수 길이 반환 목록, 이전: 변수 길이 매개변수 목록, 상위 문서: 함수와 대본   [차례][찾아보기]


11.5 매개변수 무시하기

정식 매개변수 목록에서 이름 대신 허수아비 메꿈표를 사용하여도 됩니다. 메꿈표는 해당 자리의 매개변수 값을 무시하고, 아무 값도 저장하지 말 것을 보여줍니다.

function val = pick2nd (~, arg2)
  val = arg2;
endfunction

nargin의 값은 이 선언에 영향을 받지 않습니다.

반환 매개변수도 같은 구문으로 무시합니다. 예를 들어, sort 함수가 정렬한 값과 원래 입력 값 색인 벡터의 정렬 모습을 반환합니다. 두 번째 출력 무시는 간단합니다. 하나 이상의 출력을 요청하지 않으면 됩니다. 무시할 대상이 첫 번째 출력이고 실제 연산은 두 번째 출력이면, ~ 메꿈표가 필요합니다.

x = [2, 3, 1];
[s, i] = sort (x)
⇒
s =

   1   2   3

i =

   3   1   2

[~, i] = sort (x)
⇒
i =

   3   1   2

~ 메꿈표를 사용할 때는, 공백 없이 반점으로만 출력 매개변수를 구분하여야 합니다. 그렇지 않으면, 해석기가 ~를 논리 부정 연산자로 봅니다.

[~ i] = sort (x)
parse error:

  invalid left hand side of assignment

출력을 무시함으로써 함수의 연산 개수를 줄이는 이점이 있습니다. isargout 함수로 출력 매개변수가 필요한지 확인하여야 합니다. 예시:

function [out1, out2] = long_function (x, y, z)
  if (isargout (1))
    ## 긴 연산
    …
    out1 = result;
  endif
  …
endfunction
isargout (k)

함수 안에서, 매개변수 k가 출력에서 변수에 할당되는지 여부를 논리값으로 반환합니다.

결과가 거짓이면, 매개변수를 물결표(~)라는 특별 출력 매개변수로 함수 호출 중에 무시합니다. 함수에서 isargout를 불필요한 출력에 허비할 연산을 피하는데에 사용합니다.

k1:max (nargout)의 범위를 벗어나면, 함수가 거짓을 반환합니다. k는 배열이어도 되며, 이 경우에는 함수가 원소 단위로 작동하고, 논리 배열을 반환합니다. 최상위에서 실행하면, isargout가 오류를 반환합니다.

같이 보기: nargout, varargout, nthargout.


다음: 변수 길이 반환 목록, 이전: 변수 길이 매개변수 목록, 상위 문서: 함수와 대본   [차례][찾아보기]