Main Content

nargoutchk

有効な出力引数の数のチェック

説明

nargoutchk(minArgs,maxArgs) は、現在の関数の呼び出しで指定された出力引数の数を検証します。nargoutchk は、出力数が minArgs より小さい場合、または maxArgs より大きい場合に、エラーをスローします。出力数が minArgsmaxArgs の間 (端点を含む) であれば、nargoutchk は何も行いません。

msgText = nargoutchk(minArgs,maxArgs,numArgs)numArgs の値を検証し、numArgsminArgs より小さいか maxArgs より大きい場合にメッセージを返します。この構文の使用は推奨されません。

msgStruct = nargoutchk(minArgs,maxArgs,numArgs,'struct') はメッセージ構造体を返します。この構文の使用は推奨されません。

すべて折りたたむ

最小で 2 つ、最大で 5 つの出力引数を使用して関数が呼び出されていることを検証します。

checkOutputs.m という名前のファイルに、呼び出しに有効な数の出力が使用されているかどうかを nargoutchk を使用して検証する関数を作成します。関数シグネチャは、checkOutputs がさまざまな数の出力引数を受け取れることを示しています。

function varargout = checkOutputs(varargin)
minArgs=2;  
maxArgs=5;
nargoutchk(minArgs,maxArgs)

disp("You requested " + nargout + " outputs.")

varargout = cell(nargout,1);
for k=1:nargout
    varargout{k} = randi(100);
end
end

1 つの出力引数を使用してこの関数を呼び出します。

a = checkOutputs(13)
Error using checkOutputs (line 4)
Not enough output arguments.

5 つの出力引数を使用して、この関数を再度呼び出します。

[a,b,c,d,e] = checkOutputs(7,42);
You requested 5 outputs.

6 つの出力引数を使用して、この関数を再度呼び出します。

[a,b,c,d,e,f] = checkOutputs(7,42);
Error using checkOutputs (line 4)
Too many output arguments.

入力引数

すべて折りたたむ

受け取れる出力の最小数。スカラーとして指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

受け取れる出力の最大数。スカラーとして指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

メモ

numArgs の使用は推奨されていません。

関数の出力の数。スカラーとして指定します。一般的に、関数の呼び出しで指定されている出力引数の数を確認するには、関数 nargout を使用します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力引数

すべて折りたたむ

メモ

msgText の使用は推奨されていません。

メッセージ テキスト。'Not enough output arguments.''Too many output arguments.'、または空の行列として返されます。

numArgsminArgs より小さい場合、nargoutchk は文字ベクトル 'Not enough output arguments.' を返します。numArgsmaxArgs より大きい場合、nargoutchk は文字ベクトル 'Too many output arguments.' を返します。それ以外の場合、nargoutchk は空の行列を返します。

メモ

msgStruct の使用は推奨されていません。

メッセージと識別子。message および identifier フィールドをもつ構造体として返されます。numArgsminArgs より小さい場合、nargoutchk は次の構造体を返します。

       message: 'Not enough output arguments.'
    identifier: 'MATLAB:nargoutchk:notEnoughOutputs'

numArgsmaxArgs より大きい場合、nargoutchk は次の構造体を返します。

       message: 'Too many output arguments.'
    identifier: 'MATLAB:nargoutchk:tooManyOutputs'

それ以外の場合、nargoutchk は空の構造体を返します。

ヒント

  • 引数の最小数が指定され、最大数が指定されていないことを確認するには、maxArgsinf に設定します。たとえば、nargoutchk(5,inf) は、出力が 5 つ未満の場合にエラーをスローします。

  • 正確な数の引数があることを確認するには、minArgsmaxArgs に同じ値を指定します。たとえば、nargoutchk(3,3) は、厳密に 3 つの出力がないとエラーをスローします。

  • minArgs が 0 で maxArgsnargout の場合、nargoutchk を使用する必要はありません。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入