validateattributes
检查数组的有效性
语法
描述
例子
验证数组大小
类= {“数字”};属性= {“大小”,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
创建一个自定义函数检查输入参数inputParser
,并使用validateattributes
验证函数addRequired
和addOptional
方法。
定义的函数。
函数= 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 ,单 ,或双 |
' < |
其他类名 |
数据类型:细胞
|字符串
属性
- - - - - -有效的属性
单元阵列|字符串数组
有效的属性,指定为一个单元格数组或字符串数组。
还需要一些属性数值,如属性指定的大小或数量的元素一个
。这些属性的数值或向量必须立即按照单元阵列中的属性名称。一个字符串数组不能被用来表示数值属性
。
这些属性描述数组的大小和形状一个
。
“二维” |
二维数组,包括标量、向量,矩阵,和空数组 |
“3 d” |
数组和三个或更少的维度 |
“列” |
列向量,N 1 |
“行” |
行向量,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” |
一个列的每个元素是小于或等于前一个元素和元素南 。 |
数据类型:细胞
funcName
- - - - - -名称的功能验证
特征向量|字符串标量
指定名称的功能验证,作为特征向量或一个字符串标量。如果你指定一个空字符向量,”
,或者是<失踪>
字符串,那么validateattributes
函数忽略了funcName
输入。
数据类型:字符
|字符串
varName
- - - - - -输入变量的名称
特征向量|字符串标量
输入变量的名称,指定为一个特征向量或字符串标量。如果你指定一个空字符向量,”
,或者是<失踪>
字符串,那么validateattributes
函数忽略了varName
输入。
数据类型:字符
|字符串
argIndex
- - - - - -输入参数的位置
正整数
输入参数,指定为一个正整数。
数据类型:双
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
一些错误消息是一个简化版的MATLAB错误消息。
的
类
,funcName
,varName
,argIndex
参数必须是常数。属性名称必须是常数。
在生成的代码中,数字错误消息的格式可能不同于MATLAB的格式。例如,这里有一个在MATLAB的错误消息:
预期的输入与所有的数组值> 3。
这是生成的代码的错误消息:
预期的输入与所有的数组值> 3.000000000000000 e + 00。
GPU数组
加速代码运行在一个图形处理单元(GPU)使用并行计算工具箱™。
这个函数完全支持GPU数组。金宝app有关更多信息,请参见运行在GPU MATLAB函数(并行计算工具箱)。
分布式阵列
分区大数组在内存使用并行计算集群的工具箱相结合™。
这个函数完全支持分布式阵列。金宝app有关更多信息,请参见运行MATLAB函数与分布式阵列(并行计算工具箱)。
介绍了R2007b
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。