主要内容

mustBeInteger

验证值为整数

说明

如果 value 不包含整数值,mustBeInteger(value) 会抛出错误。此函数测试数字是否带有小数部分。此处不考虑值的数据类型。mustBeInteger 不返回值。

mustBeInteger 调用以下函数来确定 value 是否为整数: (自 R2026a 起)

支持的类:实现 mustBeInteger 调用的函数的所有数值类、logical 和 MATLAB® 类。

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

示例

示例

全部折叠

验证计算结果是整数值。

A = randi(9)/randi(9);
mustBeInteger(A)
Value must be integer.

如果两个随机整数相除的结果带有小数部分,mustBeInteger 会引发错误。

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

classdef MyClass
   properties
      Prop1 {mustBeInteger}
   end
end

创建一个对象,并向其属性赋值。将两个随机整数相除,得到的可以是整数,也可以是带有小数部分的数。

obj = MyClass;
obj.Prop1 = randi(9)/randi(9);
Error setting property 'Prop1' of class 'MyClass'. Value must be integer.

当您向属性赋值时,MATLAB 会使用赋给属性的值调用 mustBeInteger。当这些特定随机整数的除法运算的结果值不是整数时,mustBeInteger 将引发错误。

此函数声明两个输入参量。输入 A 必须为数值行向量。输入 idx 必须为整数标量。

function r = mbInteger(A,idx)
    arguments
        A (1,:) {mustBeNumeric}
        idx (1,1) {mustBeInteger}
    end
    r = A(idx).^2;
end

使用 idx 的非整数值调用该函数会导致 mustBeInteger 抛出错误。将两个随机整数相除,得到的可以是整数,也可以是带有小数部分的数。

idx = randi(9)/randi(9);
A = rand(1,10);
r = mbInteger(A,idx);
Error using mbInteger (line 4)
 r = mbInteger(A,idx);
                 ^^^
Invalid argument at position 2. Value must be integer.

输入参数

全部折叠

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

其他数据类型会导致错误。

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

提示

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

扩展功能

全部展开

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

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2017a 中推出

全部展开