Main Content

addParameter

オプションの名前と値のペア引数を入力パーサー スキームに追加

説明

addParameter(p,paramName,defaultVal) はオプションの名前と値のペア引数のパラメーター名を、入力パーサー スキームに追加します。関数の入力にこのオプションの名前と値のペアが含まれない場合、入力パーサーは paramName に値 defaultVal を割り当てます。

関数 addRequired および addOptional で追加される位置引数の入力とは異なり、addParameter で追加される各パラメーターは 2 つの入力引数に対応します。1 つはパラメーター名、もう 1 つはパラメーター値です。

addParameter(p,paramName,defaultVal,validationFcn) は入力引数の検証関数を指定します。

addParameter(___,'PartialMatchPriority',matchPriorityValue) は、競合するパラメーター名の部分一致に関する優先順位を指定します。入力パーサー スキームは、優先順位の高い値よりも低い値を選択します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。

すべて折りたたむ

inputParser オブジェクトを作成し、入力スキームに名前と値のペアを追加します。

p = inputParser;
paramName = 'myParam';
defaultVal = 0;
addParameter(p,paramName,defaultVal)

パラメーターの名前と値の両方を parse メソッドに渡し、その結果を表示します。

parse(p,'myParam',100);
p.Results
ans = struct with fields:
    myParam: 100

myParam に対応する値 (既定値 1) がゼロより大きい数値スカラーであることを検証します。

入力パーサー スキームを作成します。その検証関数について、@(x) は 1 つの入力を受け入れる無名関数のハンドルを作成します。

p = inputParser;
paramName = 'myParam';
defaultVal = 1;
errorMsg = 'Value must be positive, scalar, and numeric.'; 
validationFcn = @(x) assert(isnumeric(x) && isscalar(x) ...
    && (x > 0),errorMsg);
addParameter(p,paramName,defaultVal,validationFcn)

-1 などの無効な入力引数を解析します。

parse(p,'myparam',-1)
The value of 'myparam' is invalid. Value must be positive, scalar, and numeric.

validateattributes を使用して、検証関数を定義します。引数が空でない文字ベクトルであることを検証します。

validationFcn = @(x) validateattributes(x,{'char'},{'nonempty'});

オプションの名前と値のペアの引数 (パラメーター名 myName と既定値 'John Doe') を含む入力パーサー スキームを作成します。その入力引数を validationFcn で検証します。

p = inputParser;
paramName = 'myName';
defaultVal = 'John Doe';
addParameter(p,paramName,defaultVal,validationFcn)

myName を数値として定義します。解析は失敗します。

parse(p,'myName',1138)
The value of 'myName' is invalid. Expected input to be one of these types:

char

Instead its type was double.

文字ベクトルを解析します。解析は成功します。

parse(p,'myName','George')

入力引数

すべて折りたたむ

入力パーサー スキーム。inputParser オブジェクトとして指定します。

入力パラメーターの名前。文字ベクトルまたは string スカラーとして指定します。

例: "firstName"

例: 'address'

データ型: char | string

入力の既定値。任意のデータ型で指定します。argName が関数への入力ではない場合、関数 parse は入力を解析するときに、argName に値 defaultVal を割り当てます。

引数を検証する関数。関数ハンドルとして指定します。

関数ハンドルは、true または false を返す、テストをパスする、あるいはエラーをスローする、のいずれかを行う関数に関連付けなければなりません。いずれのタイプの関数も、単一の入力引数を受け入れなければなりません。

例: @(s)isstring(s)

例: @(x)isnumeric(x)&&isscalar(x)

例: @(n)validateattributes(n,{'numeric'},{'nonnegative'})

データ型: function_handle

競合するパラメーター名の部分一致に関する優先順位。正の整数として指定します。入力パーサー スキームは、優先順位の高い値よりも低い値を選択します。パラメーター名の一部があいまいで、優先順位が同じ場合、parse はエラーをスローします。名前があいまいでも、優先順位値が異なる場合、parse により一致した名前を示す警告が表示されます。

ヒント

  • パラメーターの名前と値のペアはオプションの入力です。関数の呼び出しでは、名前と値のペアは位置引数の後に任意の順序で指定できます。これらは一般的な Name1,Value1,...,NameN,ValueN の形式を取ります。

バージョン履歴

R2013b で導入