文档

validateattributes

检查数组的有效性

描述

例子

validateattributes (一个,,属性)验证数组一个属于至少一个指定的类(或其子类),所有指定的属性。如果一个不满足条件,那么MATLAB®抛出一个错误并显示一个格式化的错误消息。否则,validateattributes没有显示任何输出完成。

例子

validateattributes (一个,,属性,argIndex)包括输入的位置在你的函数参数列表的任何生成的错误消息。

例子

validateattributes (一个,,属性,funcName)包括在生成的错误标识符指定的函数名。

例子

validateattributes (一个,,属性,funcName,varName)包括指定的变量名称生成的错误消息。

例子

validateattributes (一个,,属性,funcName,varName,argIndex)包括在生成的错误消息或标识符指定的信息。

例子

全部折叠

类= {“数字”};属性= {“大小”,4,6,2};一个=兰德(3、5、2);validateattributes(类,属性)
将输入的大小4 x6x2当它实际上是3 x5x2大小。

因为一个不符合指定的属性,MATLAB抛出一个错误消息。

决定是否增加或不减少的一个数组。

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

一个既增加和不减少的,validateattributes不抛出一个错误的属性检查。

设置(2、3)等于(1、3)结果在一个列,不再是严格意义上的增加,validateattributes抛出一个错误。

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

然而,列仍不减少的因为每一列元素等于或大于前一列元素。下面的代码并不会抛出一个错误。

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

假设一个第二个输入参数是一个函数,检查它是负的。

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

因为复数缺乏一个良好定义的顺序在复平面,validateattributes不承认他们是积极的还是消极的。

检查是8位整数数组中的值从0到10。

假设这个代码出现在一个函数调用排名

类= {“uint8”,“int8”};属性= {“>”0,“<”,10};funcName =“排名”;一个= int8(魔法(4));validateattributes(类、属性、funcName)
错误使用排名预期输入与所有的数组值< 10。

创建一个自定义函数检查输入参数inputParser,并使用validateattributes验证函数addRequiredaddOptional方法。

定义的函数。

函数= findArea(形状、dim1变长度输入宗量)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变长度输入宗量{:})开关形状情况下“圆”=π* dim1。^ 2;情况下“矩形”= 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(形状,{“字符”},{“非空的”mfilename},“形状”1)validateattributes (ht, {“数字”},{“非空的”mfilename},“高度”2)validateattributes (wd, {“数字”},{“非空的”mfilename},“宽度”3)validateattributes (ln, {“数字”},{“非空的”mfilename},“长度”4)

没有调用的函数形状输入参数。

卷= findVolume (10、7、4)
错误使用findVolume预期输入数字1,形状,这些类型之一:字符而不是它的类型是双。错误findVolume(2)行validateattributes(形状,{char的},{}“非空的”,mfilename,“形状”,1)

函数名变成了错误标识符的一部分。

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

输入参数

全部折叠

输入,指定为任何类型的数组。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串|结构体|细胞|function_handle
复数的支持:金宝app是的

有效的数据类型,指定为一个单元阵列特征向量或一个字符串数组。的每个元素可以是任何内置的或自定义的类的名称,包括:

“单一” 单精度数
“双” 双精度数
“int8” 签署了8位整数
“int16” 签署了16位整数
“int32” 签署了32位整数
“int64” 签署了64位整数
“uint8” Unsigned 8位整数
“uint16” 16位无符号整数
“uint32” 32位无符号整数
“uint64” 未签名的64位整数
“逻辑” 逻辑1(真正的)或0()
“字符” 字符
“字符串” 字符串数组
“结构” 结构数组
“细胞” 单元阵列
“表”
“function_handle” 函数处理
“数字” 任何数据类型的isa (A,“数字”)函数返回true,包括int8,int16,int32,int64,uint8,uint16,uint32,uint64,,或
' <class_name>” 其他类名

数据类型:细胞|字符串

有效的属性,指定为一个单元格数组或字符串数组。

还需要一些属性数值,如属性指定的大小或数量的元素一个。这些属性的数值或向量必须立即按照单元阵列中的属性名称。一个字符串数组不能被用来表示数值属性

这些属性描述数组的大小和形状一个

“二维” 二维数组,包括标量、向量,矩阵,和空数组
“3 d” 数组和三个或更少的维度
“列” 列向量,N1
“行” 行向量,1 -N
“标量” 标量值,1×1
“scalartext” 一个字符串标量或特征向量,包括与零输入字符
“向量” 行或列向量,或一个标量值
“大小”,(d1,…, dN) 数组的维d1——-…——-dN。跳过检查一个特定的维度,指定尺寸,等(3、4、南,2)
元素个数,N 数组N元素
ncols, N 数组N
nrows, N 数组N
ndims, N N维数组
“广场” 方阵;换句话说,一个二维数组相同数量的行和列
“诊断接头” 对角矩阵
“非空的” 没有尺寸,等于零
“nonsparse” 这并不是稀疏的数组

这些属性指定有效范围值一个

“>”,N 所有的值大于N
“> =”,N 所有的值大于或等于N
“<”,N 所有的值小于N
“< =”,N 所有的值小于或等于N
“有限” 所有值是有限的
“nonnan” 没有值是南(不是一个数字)

这些属性检查类型的值在一个数字或逻辑数组,一个

“二元” 一系列的1和0
“甚至” 数组的偶数(包括零)
“奇怪” 一系列奇数
“整数” 一系列的整数值
“真实”的 数组的值
非负的 没有元素小于零
“零” 没有元素等于零
“积极” 不小于或等于零元素
“减少” 一个列的每个元素小于前一个元素和元素
“增加” 一个列的每个元素大于前面的元素和元素
“不减少的” 一个列的每个元素是大于或等于前一个元素和元素
“nonincreasing” 一个列的每个元素是小于或等于前一个元素和元素

数据类型:细胞

指定名称的功能验证,作为特征向量或一个字符串标量。如果你指定一个空字符向量,,或者是<失踪>字符串,那么validateattributes函数忽略了funcName输入。

数据类型:字符|字符串

输入变量的名称,指定为一个特征向量或字符串标量。如果你指定一个空字符向量,,或者是<失踪>字符串,那么validateattributes函数忽略了varName输入。

数据类型:字符|字符串

输入参数,指定为一个正整数。

数据类型:

扩展功能

介绍了R2007b