ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

nargout

関数の出力引数の数

構文

nargout
nargout(fx)

説明

nargout は、現在実行中の関数の呼び出し時に指定された出力引数の数を返します。この nargout 構文は、関数の本体にだけ使用してください。

nargout(fx) は、関数 fx の定義ステートメント内に現れる出力の数を返します。この関数がその定義に varargout を含む場合は、nargout は出力数の負の数値を返します。たとえば、関数 foo が出力 ab、および varargout を宣言する場合、nargout('foo')-3 を返します。

入力引数

fx

関数ハンドルまたは関数の名前を指定する単一引用符内の文字列のいずれか。

すべて展開する

現在の関数の出力

subtract.m という名前のファイル内に、要求時にのみ 2 番目の戻り値を計算する関数を作成します。

function [dif,absdif] = subtract(y,x)
dif = y - x;
if nargout > 1
   disp('Calculating absolute value')
   absdif = abs(dif);
end

関数に定義された出力

関数が返せる出力数を決定します。

上記の例で作成された関数 subtract は、その宣言ステートメントに 2 つの出力をもっています (difabsdif)。

fx = 'subtract';
nargout(fx)
ans =
     2

varargout 出力をもつ関数

varargout を使用する関数が返せる出力数を決定します。

mysize.m というファイルに、関数 size からの次元と個々の次元のベクトルを、varargout を使用して返します。

function [sizeVector,varargout] = mysize(x)
   sizeVector = size(x);
   varargout = cell(1,nargout-1);
   for k = 1:length(varargout)
      varargout{k} = sizeVector(k);
   end

コマンド ラインで、mysize が返せる出力数をクエリします。

fx = 'mysize';
nargout(fx)
ans =
    -2

マイナス記号は、2 番目の出力が varargout であることを示します。関数 mysize は、不確定数の追加出力を返すことができます。

詳細

すべて展開する

ヒント

  • 式の一部に関数を使用したときは、MATLAB® はその関数を 1 つの出力引数で呼び出すので、関数内の nargout1 を返します。たとえば、次の if ステートメントで、例のセクションで定義されている関数 subtract の場合、関数 subtract 内の nargout の値は 1 です。

    a = 1; b = 2;
    if subtract(a,b) < 0
       disp('Result is negative')
    end

参考

| | | | |

この情報は役に立ちましたか?