主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

validateattributes

配列の有効性をチェック

説明

validateattributes (一个属性は,配列一个が少なくとも1つの指定されたクラス(またはサブクラス)に属しており,指定されたすべての属性をもっていることを検証します。一个が条件を満たさない場合,MATLAB®はエラーをスローして形式化されたエラーメッセージを表示します。それ以外の場合,validateattributesはどのような出力も表示せずに完了します。

validateattributes (一个属性argIndexは,生成されるエラーメッセージの一部として関数の引数リストに入力の位置を含めます。

validateattributes (一个属性funcNameは,生成されるエラー識別子に指定された関数の名前を含めます。

validateattributes (一个属性funcNamevarNameは,生成されるエラーメッセージに指定された変数の名前を含めます。

validateattributes (一个属性funcNamevarNameargIndexは,生成されるエラーメッセージまたはエラー識別子に指定された情報を含めます。

すべて折りたたむ

类= {“数字”};属性= {“大小”, 4, 6, 2};一个=兰德(3、5、2);validateattributes(类,属性)
预期输入的尺寸为4x6x2,而实际尺寸为3x5x2。

一个は指定された属性と一致しなかったため,MATLABはエラーメッセージをスローします。

配列が増加している,または減少していないかどうかを判別します。

A = [1 5 8 2;9 6 9 4] validateattributes(A, {)“双”}, {“不减少的”}) validateattributes (A, {“双”}, {“增加”})
A = 1 5 8 2 9 6 9 4

一个は増加していてかつ減少していないため,validateattributesではいずれの属性チェックでもエラーはスローされません。

(2、3)(1、3)に等しく設定すると,厳密に増加していない列が生成されるため,validateattributesはエラーをスローします。

A(2,3) = 8“双”}, {“增加”})
A = 1 5 8 2 9 6 8 4期望投入严格增加。

ただし,各列要素は前の列要素以上であるため,列は減少しないままです。次のコードではエラーはスローされません。

validateattributes (A, {“双”}, {“不减少的”})

一个が関数の2番目の入力引数であると仮定し,非負であることを確認します。

一个=复杂的(1,1);validateattributes (a, {“数字”}, {非负的}, 2)
期望输入2是非负的。

複素数の複素平面には適切に定義された順序がないため,validateattributesはこれを正とも負とも認識しません。

配列の値が0と10の間の8ビット整数であることをチェックします。

このコードは排名という関数内にあると仮定します。

类= {“uint8”“int8”};属性= {“>”0,“<”, 10};funcName =“排名”;一个= int8(魔法(4));validateattributes(类、属性、funcName)
使用所有值< 10的数组进行排名时出错。

inputParserで入力パラメーターを確認するカスタム関数を作成し,validateattributesaddRequiredメソッドとaddOptionalメソッドの検証関数として使用します。

関数を定義します。

函数a = findArea(shape,dim1,varargin) p = inputParser;charchk = {“字符”};numchk = {“数字”};nempty = {“非空的”};addRequired (p,“形状”@ (x) validateattributes (x, charchk nempty)) addRequired (p,“dim1”@ (x) validateattributes (x, numchk nempty)) addOptional (p,“dim2”1, @ (x) validateattributes (x, numchk nempty))解析(p,形状、dim1变长度输入宗量{:})开关形状情况下“圆”A = PI * dim1.^2;情况下“矩形”a = dim1 .* p.Results.dim2;结束结束

数値以外の3番目の入力を使用して関数を呼び出します。

myarea = findArea (“矩形”3,“x”
使用findArea出错(第10行)期望输入的类型为:double, single, uint8, uint16, uint32, uint64, int8, int16, int32, int64

関数の入力を確認し,生成されたエラーに入力名と位置についての情報を含めます。

関数を定義します。

函数v = findVolume(shape,ht,wd,ln) validateattributes(shape,{)“字符”}, {“非空的”mfilename},“形状”1) validateattributes (ht, {“数字”}, {“非空的”mfilename},“高度”2) validateattributes (wd, {“数字”}, {“非空的”mfilename},“宽度”3) validateattributes (ln, {“数字”}, {“非空的”mfilename},“长度”4)

入力引数形状を含めずに関数を呼び出します。

卷= findVolume(10、7、4)
使用findVolume时的错误。期望输入1,Shape,是以下类型之一:char,它的类型是double。validateattributes(shape,{'char'},{'nonempty'},mfilename,' shape ',1)

関数名がエラー識別子の一部になります。

MException.last.identifier
ans = MATLAB: findVolume: invalidType

入力引数

すべて折りたたむ

任意の配列タイプとして指定される入力。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串|结构体|细胞|function_handle
複素数のサポート:あり

有効なデータ型。文字ベクトル、文字ベクトルの细胞配列、または string 配列として指定します。の各要素は,以下を含む組み込みクラスまたはカスタムクラスの名前です。

“单一” 単精度数
“双” 倍精度数
“int8” 符号付き8ビット整数
“int16” 符号付き16ビット整数
“int32” 符号付き32ビット整数
“int64” 64年符号付きビット整数
“uint8” 符号なしの8ビット整数
“uint16” 符号なしの16ビット整数
“uint32” 符号なしの32ビット整数
“uint64” 64年符号なしのビット整数
“逻辑” 逻辑1真正的)または0
“字符” 文字
“字符串” 字符串配列
“结构” 構造体配列
“细胞” 细胞配列
“表” テーブル
“function_handle” 関数ハンドル
“数字” int8int16int32int64uint8uint16uint32uint64など,関数isa (A,“数字”)が真正を返すすべてのデータ型
' <class_name>” その他のクラス名

データ型:细胞|字符串

有効な属性。细胞配列または string 配列として指定します。

一个の要素のサイズや数を指定する属性など,一部の属性では数値も必要になります。そのような属性の場合,数値またはベクトルは细胞配列の属性名の直後になければなりません。字符串配列を使用して属性の数値を表すことはできません。

配列一个のサイズおよび形状を記述する属性は次のとおりです。

“二维” スカラー,ベクトル,行列および空の配列を含む2次元の配列
“3 d” 3次元が以下の配列
“列” 列ベクトル(N行 1 列)
“行” 行ベクトル(1行N列)
“标量” スカラー値(1行1列)
“scalartext” 字符串スカラーまたは文字ベクトルのいずれか(0文字の入力を含む)
“向量” 行または列ベクトル,あるいはスカラー値
“大小”,(d1,…,dN) d1x……xdN次元の配列。特定の次元の確認を省略するには,その次元に対してを,(3、4、南,2)のように指定します。
元素个数,N N要素の配列
ncols, N N列の配列
nrows, N N行の配列
ndims, N N次元の配列
“广场” 正方行列(行と列の数が等しい2次元配列)
“诊断接头” 対角行列
“非空的” 0に等しい次元なし
“nonsparse” スパースでない配列

一个の値の有効な範囲を指定する属性は次のとおりです。

“>”,N すべての値がNよりも大きい
“> =”,N すべての値がN以上
“<”,N すべての値がNよりも小さい
“< =”,N すべての値がN以下
“有限” すべての値が有限
“nonnan” どの値も南(非数)ではない

数値配列または逻辑配列一个の値の型を確認する属性は次のとおりです。

“二元” 1と0の配列
“甚至” 偶数の整数の配列(0を含む)
“奇怪” 奇数の整数の配列
“整数” 整数値の配列
“真实”的 実数値の配列
非负的 0より小さい要素なし
“零” 0に等しい要素なし
“积极” 0以下の要素なし
“减少” 列の各要素が前の要素より小さく,である要素が存在しない
“增加” 列の各要素が前の要素より大きく,である要素が存在しない
“不减少的” 列の各要素が前の要素以上で,である要素が存在しない
“nonincreasing” 列の各要素が前の要素以下で,である要素が存在しない

データ型:细胞

検証する関数の名前。文字ベクトルまたは string スカラーとして指定します。空の文字ベクトル''のまたは字符串< >失踪を指定した場合,関数validateattributesfuncNameの入力を無視します。

データ型:字符|字符串

入力変数の名前。文字ベクトルまたは string スカラーとして指定します。空の文字ベクトル''のまたは字符串< >失踪を指定した場合,関数validateattributesvarNameの入力を無視します。

データ型:字符|字符串

入力引数の位置。正の整数として指定します。

データ型:

拡張機能

R2007bで導入