Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

mustBeFinite

验证值是有限值

说明

示例

如果 value 不是有限值,mustBeFinite(value) 将引发错误。不为 NaNInf 的数值即为有限值。此函数不返回值。

mustBeFinite 调用以下函数来确定输入是否为有限值:

支持的类:重载 isfinite 的所有数值类、logicalchar 和 MATLAB® 类。

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

示例

全部折叠

使用 mustBeFinite 验证任何数组元素均不为 NaNInf

d = 0:9;
A = 1./d;
mustBeFinite(A)
Error using mustBeFinite (line 13)
Value must be finite.

d 除使得一个元素变成 Inf,因而引发了错误。

该类将 Prop1 的值限制为有限值。

classdef MyClass
   properties
      Prop1 {mustBeFinite}
   end
end

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

d = 0:9;
obj = MyClass;
obj.Prop1 = 1./d;
Error setting property 'Prop1' of class 'MyClass':
Value must be finite.

当您向属性赋值时,MATLAB 会使用赋给属性的值调用 mustBeFinitemustBeFinite 将引发错误,因为值被 0 除的结果是 Inf

此函数声明一个输入参数,该参数必须为不包含 InfNaN 元素的双精度向量。

function s = mbFinite(x)
    arguments
        x (1,:) double {mustBeFinite}
    end
    n = length(x);
    m = sum(x)/n;
    s = sqrt(sum((x-m).^2/n));
end

使用不满足 mustBeFinite 要求的输入调用该函数会引发错误。

values = [12.7, 45.4, 98.9, Inf, 53.1];
s = mbFinite(values);
Error using mbFinite
 s = mbFinite(values);
              ↑
Invalid input argument at position 1. Value must be finite.

输入参数

全部折叠

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

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

提示

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

扩展功能

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

版本历史记录

在 R2017a 中推出