Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

mustBeNumericOrLogical

验证值为数值或逻辑值

说明

示例

如果 value 不是数值或逻辑值,mustBeNumericOrLogical(value) 将引发错误。此函数不返回值。

mustBeNumericOrLogical 调用以下函数来确定输入是否为数值或逻辑值:

此函数忽略输入参数中的空值。因此,当属性或函数参数值为空时,不会引发错误。

示例

全部折叠

验证对象属性的值为数值或逻辑值。

a = lettersPattern;
mustBeNumericOrLogical(a)
Values must be numeric or logical.

在此例中,a 属性的值是 pattern 对象,因而生成了错误。

此类将 Prop1 的值限制为数值。

classdef MyClass
   properties
      Prop1 {mustBeNumericOrLogical}
   end
end

创建一个对象,并向其属性赋值。

obj = MyClass;
obj.Prop1 = get(gca,'Visible');
Error setting 'Prop1' property of 'MyClass' class:
Values must be numeric or logical.

当您向属性赋值时,MATLAB® 会使用赋给属性的值调用 mustBeNumericOrLogicalmustBeNumericOrLogical 将引发错误,因为赋给 Prop1 的值是一个 char 向量。

此函数将输入参数限制为数值或逻辑向量。

function r = mbNumericOrLogical(x)
    arguments
        x (1,:) {mustBeNumericOrLogical}
    end
    p = [3 2 1];
    r = polyval(p,x);
end

使用字符向量调用该函数会导致 mustBeNumericOrLogical 引发错误。

x = '4 3 2';
r = mbNumericOrLogical(x);
Error using mbNumericOrLogical
 r = mbNumericOrLogical(x);
                       ↑
Invalid input argument at position 1. Value must be numeric or logical.

输入参数

全部折叠

要验证的值,指定为标量或由以下任一类型的值组成的数组:

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
复数支持:

提示

  • mustBeNumericOrLogical 用于属性和函数参数验证。

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2017a 中推出