MATLAB 帮助中心
验证输入包含 NaN
NaN
mustBeNonNan(value)
如果 value 包含 NaN,则 mustBeNonNan(value) 会抛出错误。此函数不返回值。
value
mustBeNonNan 调用 anynan 函数来确定输入是否包含 NaN。
mustBeNonNan
anynan
支持的类:重载 anynan 或 isnan 的所有数值类、logical、char、duration、calendarDuration 和 MATLAB® 类。
isnan
logical
char
duration
calendarDuration
示例
全部折叠
使用 mustBeNonNan 验证任何数组元素均不为 NaN。
A = 0./[-2 -1 0 1 2]; mustBeNonNan(A)
Value must not be NaN.
0 被 0 除等于 NaN,因为数组值包含一个 NaN 元素,因而引发了错误。
0
此类将 Prop1 的值限制为非 NaN 值。
Prop1
classdef MyClass properties Prop1 {mustBeNonNan} end end
创建一个对象,并向其 Prop1 赋值。
obj = MyClass; obj.Prop1 = 0./[-2 -1 0 1 2];
Error setting property 'Prop1' of class 'MyClass'. Value must not be NaN.
当您向属性赋值时,MATLAB 会使用赋给属性的值调用 mustBeNonNan。mustBeNonNan 将引发错误,因为 0 被 0 除的结果是 NaN。
此函数声明一个输入参量,该参量必须为不包含 NaN 元素的双精度向量。
function s = mbNonNan(x) arguments x (1,:) double {mustBeNonNan} end n = length(x); m = sum(x)/n; s = sqrt(sum((x-m).^2/n)); end
使用不满足 mustBeNonNan 要求的输入调用该函数会引发错误。
values = [12.7, 45.4, 98.9, NaN, 53.1]; s = mbNonNan(values);
Error using mbNonNan (line 3) s = mbNonNan(values); ^^^^^^ Invalid argument at position 1. Value must not be NaN.
要验证的值,指定为标量或由以下类型之一的值组成的数组:
所有 MATLAB 数值类、logical、char、duration 或 calendarDuration
所有重载 anynan 或 isnan 的 MATLAB 类
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | duration | calendarDuration 复数支持: 是
single
double
int8
int16
int32
int64
uint8
uint16
uint32
uint64
mustBeNonNan 用于属性和函数参量验证。
全部展开
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
mustBeNonNan 调用 anynan 函数来确定输入是否包含 NaN。以前,它调用 isnan 函数。此更改不影响 mustBeNonNan 的行为。
arguments | anynan | isnan | mustBeNonmissing | mustBeFinite | mustBeNonempty
arguments
mustBeNonmissing
mustBeFinite
mustBeNonempty
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处