11.9.2 Validating the type of Arguments

Last-modified: 2025-03-22 (土) 21:29:52

11.9.2 引数の型の検証

引数の数以外にも、入力のさまざまなプロパティをチェックできます。 validatestringは文字列引数に使用され、 validateattributes数値引数にも使用されます。

: validstr = validatestring (str, strarray)

: validstr = validatestring (str, strarray, funcname)

: validstr = validatestring (str, strarray, funcname, varname)

: validstr = validatestring (…, position)
vstrがstrarray内の要素または要素の部分文字列である ことを確認します。

strがテストする文字列で、strarray が有効な値の文字列のセル配列である場合、 validstr はstrの検証済み形式になります。ここで、検証はstr がvalidstrのメンバーまたは部分文字列であると定義されます。これは、 などの短いオプションを"r"などの長い形式に検証および拡張する場合に役立ちます"red"。strがvalidstrの部分文字列であり、複数の一致がある場合、すべての一致が互いの部分文字列であれば、最も短い一致が返されます。それ以外の場合、の拡張があいまいであるため、エラーが発生します。すべての比較で大文字と小文字は区別されません。

追加の入力funcname、varname、およびposition は オプションであり、生成される検証エラー メッセージがより具体的になります。

例:

validatestring ("r", {"red", "green", "blue"})
⇒ "red"
validatestring ("b", {"red", "green", "blue", "black"})
⇒ error: validatestring: multiple unique matches were found for 'b':
  blue, black

See also: strcmp, strcmpi, validateattributes, inputParser.

: validateattributes (A, classes, attributes)

: validateattributes (A, classes, attributes, arg_idx)

: validateattributes (A, classes, attributes, func_name)

: validateattributes (A, classes, attributes, func_name, arg_name)

: validateattributes (A, classes, attributes, func_name, arg_name, arg_idx)

入力引数の有効性を確認します。

引数A がクラスの 1 つに属し 、すべての属性を保持していることで有効であることを確認します。そうでない場合は、それに応じてフォーマットされたメッセージとともにエラーがスローされます。エラー メッセージは、関数名fun_name、引数名arg_name、および入力 arg_idx内での位置によってさらに完全なものにすることができます。

クラスは、クラス名 (クラス名は大文字と小文字が区別されることに注意してください) を含む文字列のセル配列 (空のセル配列も許可されます) である必要があります。クラス名に加えて、次のカテゴリ名も有効です。

"float"

"double"クラスとで 構成される浮動小数点値"single"。

"integer"

クラス (u)int8、(u)int16、(u)int32、(u)int64 で構成される整数値。

"numeric"

浮動小数点値または整数値のいずれかで構成される数値。

属性は、 Aのチェックの名前を含むセル配列である必要があります。一部の属性では、名前の直後に追加の値を指定する必要があります (それぞれの詳細については以下を参照してください)。

"<="

すべての値は、属性内の次の値以下です 。

"<"

すべての値は、属性内の次の値より小さいです。

">="

すべての値は、属性内の次の値以上です 。

">"

すべての値は、属性内の次の値よりも大きいです。

"2d"

2 次元行列。ベクトルと空行列は 2 つの次元を持ち、そのうちの 1 つが長さ 1 であるか、または両方の長さが 0 であることに注意してください。

"3d"

次元は 3 次元以下です。2 次元行列は、3 番目の次元の長さが 1 である 3D 行列です。

"binary"

すべての値は 1 または 0 です。

"column"

値は 1 つの列に配置されます。

"decreasing"

いずれの値もNaNではなく、それぞれが前の値よりも小さくなります。

"diag"

値は対角行列です。

"even"

すべての値は偶数です。

"finite"

すべての値は有限です。

"increasing"

どの値もNaNではなく、それぞれが前の値よりも大きくなります。

"integer"

すべての値は整数です。これは、isinteger 整数型のみをチェックする which の使用とは異なります。これは、 Aの各値が整数値であること、つまり小数部がないことを確認します。

"ncols"

属性の次の値と同じ数の列を持ちます。

"ndims"

属性の次の値とまったく同じ数の次元を持ちます。

"nondecreasing"

どの値もNaNではなく、それぞれが前の値以上です。

"nonempty"

空ではありません。

"nonincreasing"

どの値もNaNではなく、それぞれが前の値以下です。

"nonnan"

値はありませんNaN。

"nonnegative"

すべての値は負ではありません。

"nonsparse"

これはスパース行列ではありません。

"nonzero"

値はゼロではありません。

"nrows"

属性の次の値と同じ数の行があります。

"numel"

属性の次の値と同じ数の要素を持ちます。

"odd"

すべての値は奇数です。

"positive"

すべての値は正です。

"real"

非複素行列です。

"row"

値は 1 行に配置されます。

"scalar"

それはスカラーです。

"size"

そのサイズは、属性の次の値と同じ長さになります。次の値は、各次元の長さを持つ配列である必要があります。特定の次元のチェックを無視するには、 の値をNaN使用できます。

"square"

正方行列です。

"vector"

値は単一のベクトル (列またはベクトル) に配置されます。
See also: isa, validatestring, inputParser.

代わりに、validateattributes個々のプロパティをチェックするための、より短い便利な関数がいくつかあります。

: mustBeFinite (x)
Require that input x is finite.

Raise an error if any element of the input x is not finite, as determined by isfinite (x).

See also: mustBeNonNan, isfinite.

: mustBeGreaterThan (x, c)

入力x が有限であることを要求します。

入力xのいずれかの要素が有限でないと判断された場合は、エラーが発生しますisfinite (x)。

See also: mustBeGreaterThanOrEqual, mustBeLessThan, gt.

: mustBeGreaterThanOrEqual (x, c)

入力x がcより大きいことを要求します。

入力xのいずれかの要素がcより大きくない 場合、エラーが発生します ( ) 。 x > c

See also: mustBeGreaterThan, mustBeLessThanOrEqual, ge.

: mustBeInteger (x)

入力x がc以上であることを要求します。

入力xのいずれかの要素がc以上でないと判断された場合は、エラーが発生します。 x >= c

See also: mustBeNumeric.

: mustBeLessThan (x, c)

入力x は整数値である必要があります (ただし、必ずしも整数型である必要はありません)。

入力xのいずれかの要素が、さまざまなチェックによって有限の実数の整数値ではないと判断された場合、エラーを発生させます。

See also: mustBeLessThanOrEqual, mustBeGreaterThan, lt.

: mustBeLessThanOrEqual (x, c)

入力x がc未満であることを要求します。

入力xのいずれかの要素がcより小さくない 場合、エラーが発生します ( ) 。 x < c

See also: mustBeLessThan, mustBeGreaterThanOrEqual, le.

: mustBeMember (x, valid)

入力x が指定された有効な値のセットのメンバーであることを要求します。

入力xのいずれかの要素が、 によって決定される有効なセットのメンバーでない場合は、エラーを発生させます。 ismember (x)

プログラミング ノート: char 入力は、char と cellstrings を呼び出すときにそれらの相互作用により、奇妙な動作をする場合がありますismember。ただし、自然に使用すると、おそらく「意図したとおりに動作する」でしょう。操作を保証するには、 ですべての char 配列を cellstrings に変換します cellstr。

See also: mustBeNonempty, ismember.

: mustBeNegative (x)

入力xが負であることを要求します。

入力xのいずれかの要素が負でないと判断された場合、エラーが発生しますx < 0。

See also: mustBeNonnegative.

: mustBeNonempty (x)

入力xが空でないことを要求します。

入力x が空であると判断された 場合はエラーを発生させます。 isempty (x)

See also: mustBeMember, mustBeNonzero, isempty.

: mustBeNonNan (x)

入力xが でないことを要求しますNaN。

入力xのいずれかの要素が であるNaNと判定された場合、エラーが発生します。 isnan (x)

See also: mustBeFinite, mustBeNonempty, isnan.

: mustBeNonnegative (x)

入力xが負でないことを要求します。

入力xのいずれかの要素が負であると判断された場合、エラーが発生しますx >= 0。

See also: mustBeNonzero, mustBePositive.

: mustBeNonpositive (x)

入力xが正ではないことを要求します。

入力xのいずれかの要素が正であると判断された場合、エラーが発生しますx <= 0。

See also: mustBeNegative, mustBeNonzero.

: mustBeNonsparse (x)

入力x がスパースでないことを要求します。

入力x がスパースであると判断された 場合はエラーを発生させます。 issparse (x)

See also: issparse.

: mustBeNonzero (x)

入力x がゼロでないことを要求します。

入力xのいずれかの要素が 0 であると判定された場合、エラーが発生しますx == 0。

See also: mustBeNonnegative, mustBePositive.

: mustBeNumeric (x)

入力x が数値であることを要求します。

入力x が数値ではないと判断された 場合はエラーが発生します。 isnumeric (x)

See also: mustBeNumericOrLogical, isnumeric.

: mustBeNumericOrLogical (x)

入力x が数値または論理値であることを要求します。

入力x が数値でも論理値でもない場合は、エラーが発生します。 isnumeric (x) || islogical (x)

See also: mustBeNumeric, isnumeric, islogical.

: mustBePositive (x)

入力xが正であることを要求します。

入力xのいずれかの要素が正でないと判断された場合、エラーが発生しますx > 0。

See also: mustBeNonnegative, mustBeNonzero.

: mustBeReal (x)

入力x が実数であることを要求します。

入力x が実数でないと判定された 場合はエラーが発生します。 isreal (x)

See also: mustBeFinite, mustBeNonNan, isreal.