除了参数的数量之外,还可以检查输入的各种属性。validatestring
用于字符串参数和validateattributes
用于数字参数。
validstr=
validatestring (str,strarray)
¶
validstr=
validatestring (str,strarray,funcname)
¶
validstr=
validatestring (str,strarray,funcname,varname)
¶
validstr=
validatestring (…,position)
¶
验证str是中的元素或元素的子字符串strarray.
当str是要测试的字符串,并且strarray是一个有效值的字符串数组,那么validstr将是的验证形式str其中验证定义为str成为的成员或子串validstr。这对于验证和扩展空头参数都很有用,例如"r"
,转换为较长的形式,例如"red"
如果str是的子字符串validstr,并且有多个匹配,如果所有匹配都是彼此的子字符串,则将返回最短的匹配。否则,错误将受到谴责,因为的扩展str模棱两可。所有比较都不区分大小写。
附加输入funcname,varname和position是可选的,这将使任何生成的验证错误消息更加具体。
示例:
validatestring ("r", {"red", "green", "blue"}) ⇒ "red" validatestring ("b", {"red", "green", "blue", "black"}) ⇒ error: validatestring: multiple unique matches were found for 'b': blue, black
(A,classes,attributes)
¶
(A,classes,attributes,arg_idx)
¶
(A,classes,attributes,func_name)
¶
(A,classes,attributes,func_name,arg_name)
¶
(A,classes,attributes,func_name,arg_name,arg_idx)
¶
检查输入参数的有效性。
确认参数A通过属于其中一个而有效classes,并持有所有attributes。如果没有,则抛出错误,并相应地格式化消息。可以通过函数名称使错误消息更加完整fun_name,参数名称arg_name,及其在输入中的位置arg_idx.
classes必须是字符串的元胞数组(不允许使用空元胞数组)和类的名称(记住类名区分大小写)。除了类名之外,以下类别名称也是有效的:
"float"
包含类的浮点值"double"
和"single"
.
"integer"
整数值,包括类(u)int8、(u)int 16、(u)int 32和(u)int64。
"numeric"
包含浮点值或整数值的数值。
attributes必须是具有检查名称的元胞数组A。其中一些要求在该日期后立即提供附加值(详见下面的每个详细信息)。
"<="
中的所有值都小于或等于以下值attributes.
"<"
中的所有值都小于以下值attributes.
">="
中的所有值都大于或等于以下值attributes.
">"
中的所有值都大于以下值attributes.
"2d"
二维矩阵。注意向量和空矩阵有二维,其中一个长度为1,或者两个长度都为0。
"3d"
不超过3个维度。2维矩阵是3维长度为1的3维矩阵。
"binary"
所有值都是1或0。
"column"
值排列在一列中。
"decreasing"
没有值是NaN,并且每个都小于前一个。
"diag"
值是一个对角矩阵。
"even"
所有值都是偶数。
"finite"
所有值都是有限的。
"increasing"
没有值是NaN,并且每个都大于前一个。
"integer"
所有值都是整数。这与使用不同isinteger
其仅检查其为整数类型。这将检查中的每个值A是一个整数值,即没有小数部分。
"ncols"
具有与中的下一个值完全相同的列数attributes.
"ndims"
具有与中的下一个值完全相同的维度attributes.
"nondecreasing"
没有值是NaN,并且每个都大于或等于前一个。
"nonempty"
它不是空的。
"nonincreasing"
没有值是NaN,并且每个都小于或等于前一个。
"nonnan"
没有值是NaN
.
"nonnegative"
所有值均为非负值。
"nonsparse"
它不是一个稀疏矩阵。
"nonzero"
没有值为零。
"nrows"
具有与中的下一个值完全相同的行数attributes.
"numel"
具有与中的下一个值完全相同的元素数attributes.
"odd"
所有值都是奇数。
"positive"
所有值都是正值。
"real"
它是一个非复杂矩阵。
"row"
值排列在一行中。
"scalar"
它是一个标量。
"size"
其大小的长度等于中下一个的值attributes。下一个值必须是具有每个维度的长度的数组。若要忽略对某个维度的检查,则的值NaN
可以使用。
"square"
是一个正方阵。
"vector"
值排列在单个向量(列或向量)中。
详见: isa,validatestring,inputParser.
作为的替代方案validateattributes
有几个方便快捷的函数来检查各个属性。
(x)
¶
要求输入x是有限的。
如果输入的任何元素都会引发错误x不是有限的,从isfinite (x)
.
详见: mustBeNonNan,isfinite.
(x,c)
¶
要求输入x大于c.
如果输入的任何元素都会引发错误x不大于c,从确定x > c
.
(x,c)
¶
要求输入x大于或等于c.
如果输入的任何元素都会引发错误x不大于或等于c,从确定x >= c
.
(x)
¶
要求输入x是整数值的(但不一定是整数类型的)。
如果输入的任何元素都会引发错误x不是从各种检查确定的有限、实数、整数值。
详见: mustBeNumeric.
(x,c)
¶
要求输入x小于c.
如果输入的任何元素都会引发错误x不小于c,从确定x < c
.
(x,c)
¶
要求输入小于或等于给定值。
如果输入的任何元素都会引发错误x不小于或等于c,从确定x <= c
.
(x,valid)
¶
要求输入x是一组给定有效值的成员。
如果输入的任何元素都会引发错误x不是集合的成员valid,从确定ismember (x)
.
编程注意:从于调用时字符和单元字符串之间的相互作用,字符输入可能会表现得很奇怪ismember
在他们身上。但如果你只是自然地使用它,它可能会“为所欲为”。为了保证操作,使用将所有char数组转换为元胞字符串cellstr
.
详见: mustBeNonempty,ismember.
(x)
¶
要求输入x是负数。
如果输入的任何元素都会引发错误x不是负数,从确定x < 0
.
详见: mustBeNonnegative.
(x)
¶
要求输入x不是空的。
如果输入x为空,从确定isempty (x)
.
(x)
¶
要求输入x不是-NaN
.
如果输入的任何元素都会引发错误x是NaN
,从确定isnan (x)
.
(x)
¶
要求输入x不是否定的。
如果输入的任何元素都会引发错误x为负,从确定x >= 0
.
(x)
¶
要求输入x不是正的。
如果输入的任何元素都会引发错误x为阳性,从确定x <= 0
.
(x)
¶
要求输入x不是稀疏的。
如果输入x是稀疏的,从确定issparse (x)
.
详见: issparse.
(x)
¶
要求输入x不是零。
如果输入的任何元素都会引发错误x为零,从确定x == 0
.
(x)
¶
要求输入x是数字。
如果输入x不是数字,从确定isnumeric (x)
.
(x)
¶
要求输入x是数字的或逻辑的。
如果输入x不是数字或逻辑,从确定isnumeric (x)||不合逻辑(x)
.
(x)
¶
要求输入x是正的。
如果输入的任何元素都会引发错误x不是正的,从确定x > 0
.
(x)
¶
要求输入x是真实的。
如果输入x不是真实的,从确定isreal (x)
.
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2