validateattributes
配列の有効性をチェック
構文
説明
例
配列のサ@ @ズの検証
类= {“数字”};属性= {“大小”, 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
を使用した関数入力パラメ,タ,の検証
inputParser
で入力パラメ,タ,を確認するカスタム関数を作成し,validateattributes
をaddRequired
メソッドと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配列|字符串配列
有効なデ,タ型。文字ベクトル、文字ベクトルのcell配列、または string 配列として指定します。类
の各要素は,以下を含む組み込みクラスまたはカスタムクラスの名前です。
“一半” |
半精度数 |
“单一” |
単精度数 |
“双” |
倍精度数 |
“int8” |
符号付き8ビット整数 |
“int16” |
符号付き16ビット整数 |
“int32” |
符号付き32ビット整数 |
“int64” |
符号付き64ビット整数 |
“uint8” |
符号なしの8ビット整数 |
“uint16” |
符号なしの16ビット整数 |
“uint32” |
符号なしの32ビット整数 |
“uint64” |
符号なしの64ビット整数 |
“逻辑” |
逻辑1 (真正的 )または0 (假 ) |
“字符” |
文字 |
“字符串” |
字符串配列 |
“结构” |
構造体配列 |
“细胞” |
细胞配列 |
“表” |
テブル |
“function_handle” |
関数ハンドル |
“数字” |
int8 、int16 、int32 、int64 、uint8 、uint16 、uint32 、uint64 、单 、双 など,関数isa (A,“数字”) がtrueを返すすべてのデタ型 |
' < |
その他のクラス名 |
デ,タ型:细胞
|字符串
属性
- - - - - -有効な属性
细胞配列|字符串配列
有効な属性。细胞配列または string 配列として指定します。
一个
の要素のサesc escズや数を指定する属性など,一部の属性では数値も必要になります。そのような属性の場合,数値またはベクトルは单元格配列の属性名の直後になければなりません。字符串配列を使用して属性
の数値を表すことはできません。
配列一个
のサ@ @ズおよび形状を記述する属性は次のとおりです。
“二维” |
スカラ,ベクトル,行列および空の配列を含む2次元の配列 |
“3 d” |
次元が3以下の配列 |
“列” |
列ベクトル(N 行 1 列) |
“行” |
行ベクトル(1行N 列) |
“标量” |
スカラ,値(1行1列) |
“scalartext” |
字符串スカラ,または文字ベクトルのいずれか(0文字の入力を含む) |
“向量” |
行または列ベクトル,あるいはスカラ,値 |
“大小”,(d1,…,dN) |
d1 x……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” |
列の各要素が前の要素以下で,南 である要素が存在しない |
デ,タ型:细胞
funcName
- - - - - -検証する関数の名前
文字ベクトル|字符串スカラ
検証する関数の名前。文字ベクトルまたは string スカラーとして指定します。空の文字ベクトル”
または字符串の< >失踪
を指定した場合,関数validateattributes
はfuncName
の入力を無視します。
デ,タ型:字符
|字符串
varName
- - - - - -入力変数の名前
文字ベクトル|字符串スカラ
入力変数の名前。文字ベクトルまたは string スカラーとして指定します。空の文字ベクトル”
または字符串の< >失踪
を指定した場合,関数validateattributes
はvarName
の入力を無視します。
デ,タ型:字符
|字符串
argIndex
- - - - - -入力引数の位置
正の整数
入力引数の位置。正の整数として指定します。
デ,タ型:双
拡張機能
C/ c++コ,ド生成
MATLAB®Coder™を使用してCおよびc++コドを生成します。
使用上の注意事項および制限事項:
一部のエラメッセジはmatlabのエラメッセジの簡易版になります。
类
、funcName
、varName
、argIndex
の各引数は定数でなければなりません。属性名は定数でなければなりません。
生成コ,ドのエラ,メッセ,ジに含まれる数値の形式はmatlabの形式と異なる場合があります。たとえば,次のエラ,メッセ,ジはmatlabのものです。
期望输入是一个包含所有值> 3的数组。
このエラ,メッセ,ジは生成コ,ドでは次のようになります。
期望输入是一个包含所有值> 3.000000000000000e+00的数组。
スレッドベ,スの環境
MATLAB®backgroundPool
を使用してバックグラウンドでコードを実行するか,并行计算工具箱™のThreadPool
を使用してコ,ドを高速化します。
この関数はスレッドベ,スの環境を完全にサポ,トしています。詳細にいては,在线程环境中运行MATLAB函数を参照してください。
Gpu配列
并行计算工具箱™を使用してグラフィックス処理装置(GPU)上で実行することにより,コードを高速化します。
この関数はgpu配列を完全にサポ,トしています。詳細にいては,Gpuでのmatlab関数の実行(并行计算工具箱)を参照してください。
分散配列
并行计算工具箱™を使用して,クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポ,トしています。詳細にいては,分散配列を使用したmatlab関数の実行(并行计算工具箱)を参照してください。
バ,ジョン履歴
Matlabコマンド
次のmatlabコマンドに対応するリンクがクリックされました。
コマンドをmatlabコマンドウィンドウに入力して実行してください。Webブラウザ,はMATLABコマンドをサポ,トしていません。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。