Main Content

引数の検証時の関数 nargin の使用

関数 nargin は、現在実行中の関数の呼び出し時に渡された関数入力引数の数を返します。関数の引数の検証を使用する場合、関数内で nargin から返される値は、関数の呼び出し時に指定された位置引数の数です。

繰り返し引数は位置引数であるため、関数の呼び出し時に渡された繰り返し引数の数は nargin で返される値に含まれます。

nargin が返す値には、関数呼び出しに含まれていないオプションの入力引数は含まれません。また、nargin は名前と値の引数をカウントしません。

関数の呼び出し時にオプションの位置引数が渡されるかどうかを判定するには、nargin を使用します。たとえば、次の関数は 3 つの位置引数と 1 つの名前と値の引数を宣言します。呼び出しに際して渡される引数を関数がどのように判定するかを以下に示します。

  • nargin は、オプションの位置引数 c が関数に渡されるかどうかを switch ブロックで判定。

  • isfield は、Format の名前と値の引数が関数に渡されるかどうかを判定。

function result = fNargin(a,b,c,namedargs)
    arguments
        a (1,1) double
        b (1,1) double
        c (1,1) double = 1
        namedargs.Format (1,:) char
    end

    % Function code
    switch nargin
        case  2
            result = a + b;
        case 3
            result = a^c + b^c;
    end
    if isfield(namedargs,"Format")
        format(namedargs.Format);
    end
end

この関数呼び出しでは、nargin の値は 2 です。

result = fNargin(3,4)
result =

     7

この関数呼び出しでは、nargin の値は 3 です。

result = fNargin(3,4,7.62)
result =

   4.3021e+04

この関数呼び出しでは、nargin の値は 3 です。

result = fNargin(3,4,7.62,Format="bank")
result =

      43020.56

参考

| |

関連するトピック