文档帮助中心文档
inputParser
数组有效性检查
validateattributes(类,属性)
validateattributes(类、属性、argIndex)
validateattributes(类、属性、funcName)
validateattributes(、类、属性、funcName varName)
validateattributes(、类、属性、funcName varName, argIndex)
例子
validateattributes (一个,类,属性)验证数组一个至少属于一个指定的类(或它的子类),并具有所有指定的属性。如果一个不符合标准,那么MATLAB呢®抛出错误并显示格式化的错误消息。否则,validateattributes完成时不显示任何输出。
validateattributes (一个,类,属性)
一个
类
属性
validateattributes
validateattributes (一个,类,属性,argIndex)在生成的错误消息中包括函数参数列表中的输入位置。
validateattributes (一个,类,属性,argIndex)
argIndex
validateattributes (一个,类,属性,funcName)在生成的错误标识符中包含指定的函数名。
validateattributes (一个,类,属性,funcName)
funcName
validateattributes (一个,类,属性,funcName,varName)在生成的错误消息中包含指定的变量名。
validateattributes (一个,类,属性,funcName,varName)
varName
validateattributes (一个,类,属性,funcName,varName,argIndex)在生成的错误消息或标识符中包含指定的信息。
validateattributes (一个,类,属性,funcName,varName,argIndex)
全部折叠
类= {“数字”};属性= {“大小”, 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抛出一个错误。
(2、3)
(1、3)
A(2,3) = 8“双”},{“增加”})
A = 1 5 8 2 9 6 8 4期望投入严格增加。
但是,由于每个列元素都等于或大于前一个列元素,因此列保持非递减状态。下面的代码不会抛出错误。
validateattributes (A, {“双”},{“不减少的”})
假设一个是函数的第二个输入参数,请检查它是否为非负。
一个=复杂的(1,1);validateattributes (a, {“数字”},{非负的}, 2)
期望输入2是非负的。
因为复数在复平面上没有明确的顺序,validateattributes不承认它们是积极的还是消极的。
检查数组中的值是否为从0到10的8位整数。
假设此代码发生在被调用的函数中排名.
排名
类= {“uint8”,“int8”};属性= {“>”0,“<”, 10};funcName =“排名”;一个= int8(魔法(4));validateattributes(类、属性、funcName)
使用所有值< 10的数组进行排名时出错。
创建一个自定义函数来检查输入参数inputParser,并使用validateattributes的验证函数addRequired和addOptional方法。
addRequired
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;结束结束
使用非数字第三输入调用函数。
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复数的支持:金宝app是的
单
双
int8
int16
int32
int64
uint8
uint16
uint32
uint64
逻辑
字符
字符串
结构体
细胞
function_handle
有效的数据类型,指定为字符向量、字符向量单元格数组或字符串数组。的每个元素类可以是任何内置或自定义类的名称,包括:
“一半”
“单一”
“双”
“int8”
“int16”
“int32”
“int64”
“uint8”
“uint16”
“uint32”
“uint64”
“逻辑”
1
真正的
0
假
“字符”
“字符串”
“结构”
“细胞”
“表”
“function_handle”
“数字”
isa (A,“数字”)
' <class_name>”
class_name
数据类型:细胞|字符串
有效的属性,指定为单元格数组或字符串数组。
某些属性还需要数值,例如指定元素的大小或数量的属性一个.对于这些属性,数值或向量必须紧跟着单元格数组中的属性名称。中的字符串数组不能用于表示数值属性.
这些属性描述了数组的大小和形状一个.
“二维”
“3 d”
“列”
N
“行”
“标量”
“scalartext”
“向量”
“大小”,(d1,…,dN)
d1
dN
南
(3、4、南,2)
元素个数,N
ncols, N
nrows, N
ndims, N
“广场”
“诊断接头”
“非空的”
“nonsparse”
中的值的有效范围由这些属性指定一个.
“>”,N
“> =”,N
“<”,N
“< =”,N
“有限”
“nonnan”
这些属性检查数值或逻辑数组中的值的类型,一个.
“二元”
“甚至”
“奇怪”
“整数”
“真实”的
非负的
“零”
“积极”
“减少”
“增加”
“不减少的”
“nonincreasing”
数据类型:细胞
用于验证的函数名,指定为字符向量或字符串标量。如果你指定一个空字符向量,'',或者是< >失踪字符串,那么validateattributes函数忽略了funcName输入。
''
< >失踪
数据类型:字符|字符串
输入变量的名称,指定为字符向量或字符串标量。如果你指定一个空字符向量,'',或者是< >失踪字符串,那么validateattributes函数忽略了varName输入。
输入参数的位置,指定为正整数。
数据类型:双
使用注意事项及限制:
有些错误消息是MATLAB错误消息的简化版本。
的类,funcName,varName,argIndex参数必须是常量。
属性名必须是常量。
在生成的代码中,错误消息中数字的格式可能与MATLAB中的格式不同。例如,在MATLAB中有一个错误信息:
预期的输入是一个所有值为> 3的数组。
以下是生成的代码中的错误信息:
预期的输入是一个包含所有值> 3.000000000000000e+00的数组。
backgroundPool
ThreadPool
这个函数完全支持基于线程的环境。金宝app有关更多信息,请参见在线程环境中运行MATLAB函数.
该功能完全支持GPU阵列。金宝app有关更多信息,请参见在GPU上运行MATLAB函数(并行计算工具箱).
该函数完全支持分布式数组。金宝app有关更多信息,请参见使用分布式数组运行MATLAB函数(并行计算工具箱).
validatestring|是*|isa|isnumeric|inputParser|参数
validatestring
是*
isa
isnumeric
参数
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系