メインコンテンツ

nargoutchk

R2026b

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

説明

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

例

msgText = nargoutchk(minArgs,maxArgs,numArgs) は numArgs の値を検証し、numArgs が minArgs より小さいか 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.'、または空の行列として返されます。

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

メモ

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

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

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

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

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

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

ヒント

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

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

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

拡張機能

すべて展開する

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

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2006a より前に導入