文件帮助中心
InputParser.
检查数组的有效性
validattreattributes(a,classes,属性)
Validattributes(A,Classes,Attributes,ArgIndex)
validattreattributes(a,classes,属性,funcname)
validattributes(a,classes,属性,funcname,varname)
validattributes(a,classes,属性,funcname,varname,argindex)
例
validattreattributes(一种那班级那属性)验证该数组一种属于至少一个指定类(或其子类),并且具有所有指定的属性。如果一种不符合标准,然后达到Matlab®抛出错误并显示格式化的错误消息。除此以外,validattributes.完成而不显示任何输出。
validattreattributes(一种那班级那属性)
一种
班级
属性
validattributes.
validattreattributes(一种那班级那属性那argindex.)包括函数参数列表中的输入的位置,作为任何生成的错误消息的一部分。
validattreattributes(一种那班级那属性那argindex.)
argindex.
validattreattributes(一种那班级那属性那funcname.)在生成的错误标识符中包含指定的函数名称。
validattreattributes(一种那班级那属性那funcname.)
funcname.
validattreattributes(一种那班级那属性那funcname.那arnamame.)在生成的错误消息中包含指定的变量名称。
validattreattributes(一种那班级那属性那funcname.那arnamame.)
arnamame.
validattreattributes(一种那班级那属性那funcname.那arnamame.那argindex.)包括生成的错误消息或标识符中的指定信息。
validattreattributes(一种那班级那属性那funcname.那arnamame.那argindex.)
全部收缩
类= {'数字'};属性= {'尺寸',[4,6,2]};a = rand(3,5,2);validattreattributes(a,classes,属性)
当实际尺寸为3x5x2时,预期输入为4x6x2。
因为一种与指定的属性不匹配,MATLAB抛出错误消息。
确定阵列是否越来越多或非分解。
a = [1 5 8 2;9 6 9 4] validattreattributes(a,{'双'},{'nondecreasing'})validattributes(a,{'双'},{'增加'})
A = 1 5 8 2 9 6 9 4
以来一种既有越来越多,validattributes.不会为任何属性检查抛出错误。
设置a(2,3)等于a(1,3)结果在不再严格增加的列中,所以validattributes.抛出错误。
a(2,3)
a(1,3)
a(2,3)= 8 validattributes(a,{'双'},{'增加'})
A = 1 5 8 2 9 6 8 4预期输入严格增加。
但是,列仍然是nondecreaping,因为每个列元素等于或大于先前列元素。以下代码不会丢失错误。
validattreattributes(a,{'双'},{'nondecreasing'})
假如说一种是函数的第二个输入参数,检查它是非负的。
a =复合物(1,1);validattreattributes(a,{'数字'},{'非负面'},2)
预期的输入编号2是非负面的。
因为复数缺乏在复杂的平面中定义明确的订购,validattributes.不识别它们是积极的或负面的。
检查数组中的值是否为0到10的8位整数。
假设此代码发生在调用的函数中排名。
排名
类= {'uint8'那'int8'};属性= {'>',0,'<',10};funcname ='排名';a = int8(魔术(4));validattreattributes(a,classes,属性,funcname)
使用排名预期输入的错误是具有所有值<10的数组。
创建一个自定义功能,检查输入参数InputParser.和使用validattributes.作为验证功能addrequired.和addOptional.方法。
addrequired.
addOptional.
定义函数。
功能a = findarea(形状,dim1,varargin)p = inputparser;charchk = {'char'};numchk = {'数字'};nempty = {'onempty'};addrequired(p,'形状',@(x)validattributes(x,charchk,nempty))addrequired(p,'dim1',@(x)validattributes(x,numchk,nempty))addOptional(p,'dim2',1,@(x)validattributes(x,numchk,nempty))解析(p,shape,dim1,varargin {:})开关形状案件'圈'a = pi * dim1。^ 2;案件'长方形'a = dim1。* p.results.dim2;结束结束
使用非数字第三输入调用函数。
myarea = findarea('长方形',3,'X')
使用FindArea(第10行)错误“DIM2”的值无效。预期输入是以下类型之一:双重,单,UINT8,UINT16,UINT32,UINT64,INT8,INT16,INT32,INT64
检查函数的输入,并在生成的错误中包含有关输入名称和位置的信息。
功能v = findVolume(形状,ht,wd,ln)validateattributes(shape,{'char'},{'onempty'},mfilename,'形状',1)validattreattributes(ht,{'数字'},{'onempty'},mfilename,'高度',2)validattreattributes(wd,{'数字'},{'onempty'},mfilename,'宽度'3)validattributes(ln,{'数字'},{'onempty'},mfilename,'长度'4)
没有召唤功能形状输入参数。
形状
Vol = findVolume(10,7,4)
错误使用查找预期输入数字1,形状为以下类型:char而不是其类型是双倍的。findVolume(第2行)validattreattributes(shape,{'char'},{'nonempty'},mfilename,'shape',1)中的错误
函数名称成为错误标识符的一部分。
mexception.last.identifier.
ans = matlab:findvolume:InvalidType
输入,指定为任何类型的数组。
数据类型:单|双|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32.|UINT64|逻辑|char|串|塑造|细胞|function_handle.复数支持:万博1manbetx是
单
双
INT8.
int16
INT32.
INT64.
uint8.
uint16
UINT32.
UINT64
逻辑
char
串
塑造
细胞
function_handle.
有效的数据类型,指定为字符向量,字符向量的单元格数组或字符串数组。每个元素班级可以是任何内置或自定义类的名称,包括:
'单'
'双'
'int8'
'int16'
'int32'
'int64'
'uint8'
'uint16'
'uint32'
'uint64'
'逻辑'
1
真正
0.
假
'char'
'串'
'struct'
'细胞'
'表'
'function_handle'
'数字'
ISA(a,'numeric')
'班级名称>'
班级名称
数据类型:细胞|串
有效属性,指定为单元数组或字符串数组。
某些属性还需要数值,例如指定大小或元素数量的属性一种。对于这些属性,数值或向量必须立即遵循单元格数组中的属性名称。字符串数组不能用于表示数字值属性。
这些属性描述了数组的大小和形状一种。
'2d'
'3d'
'柱'
N
'行'
'scalar'
'scalartext'
'向量'
'尺寸',[d1,...,dn]
D1
DN.
南
[3,4,Nan,2]
'numel',n
'ncols',n
'nrows',n
'ndims',n
'广场'
'诊断'
'onempty'
'nonsparse'
这些属性为值指定有效范围一种。
'>',n
'> =',n
'<',n
'<=',n
'有限'
'非洲'
这些属性在数字或逻辑阵列中检查值的类型,一种。
'二进制'
'甚至'
'奇'
'整数'
'真实'
'非负面'
'非零'
'正'
'减少'
'增加'
'nondecreasing'
'无释放'
数据类型:细胞
验证的函数名称,指定为字符向量或作为字符串标量。如果您指定空字符向量,'', 或者<缺失>字符串,然后是validattributes.功能忽略了funcname.输入。
''
<缺失>
数据类型:char|串
输入变量的名称,指定为字符向量或字符串标量。如果您指定空字符向量,'', 或者<缺失>字符串,然后是validattributes.功能忽略了arnamame.输入。
输入参数的位置,指定为正整数。
数据类型:双
使用说明和限制:
一些错误消息是MATLAB错误消息的简化版本。
该班级那funcname.那arnamame.,和argindex.参数必须是常量的。
属性名称必须是常量。
在生成的代码中,错误消息中的数字格式可能与MATLAB中的格式不同。例如,这是MATLAB中的错误消息:
预期输入是具有所有值> 3的数组。
以下是生成的代码中的错误消息:
预期输入是一个阵列,其中所有值> 3.00000000000000000e + 00。
此功能完全支持GPU阵列。万博1manbetx有关更多信息,请参阅在GPU上运行matlab函数(并行计算工具箱)。
此功能完全支持分布式数组。万博1manbetx有关更多信息,请参阅使用分布式阵列运行MATLAB函数(并行计算工具箱)。
争论|InputParser.|是*|isa.|isnumeric.|validateString.
争论
是*
isa.
isnumeric.
validateString.
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,以便在可用的地方进行翻译的内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:。
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。
联系您当地的办公室