主要内容

validateattributes

配列の有効性をチェック

説明

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

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

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

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

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

すべて折りたたむ

类= {“数字”};属性= {“大小”, 4, 6, 2};A = rand(3,5,2);validateattributes(类,属性)
期望输入的大小为4x6x2,而实际大小为3x5x2。

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

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

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

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

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

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

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

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

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

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

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

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

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

类= {“uint8”“int8”};属性= {“>”0,“<”, 10};funcName =“排名”;A = int8(magic(4));validateattributes(类、属性、funcName)
期望输入是一个所有值都< 10的数组。

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

関数を定義します。

函数a = findArea(shape,dim1,varargin) p = inputParser;Charchk = {“字符”};Numchk = {“数字”};空= {“非空的”};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行)'dim2'的值无效。期望输入为以下类型之一:double, single, uint8, uint16, uint32, uint64, int8, int16, int32, int64

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

関数を定義します。

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

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

vol = findVolume(10,7,4)
使用findVolume错误,期望输入数字1 Shape是以下类型之一:findVolume(第2行)中的错误validateattributes(shape,{'char'},{'nonempty'},mfilename,' shape ',1)

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

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

入力引数

すべて折りたたむ

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

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

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

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

デ,タ型:细胞|字符串

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

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

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

“二维” スカラ,ベクトル,行列および空の配列を含む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” どの値もNaN(非数)ではない

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

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

デ,タ型:细胞

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

デ,タ型:字符|字符串

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

デ,タ型:字符|字符串

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

デ,タ型:

拡張機能

バ,ジョン履歴

R2007bで導入