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 用于属性和函数参量验证。
全部展开
mustBeNonNan 函数完全支持 GPU 数组。要在 GPU 上运行该函数,请将输入数据指定为 gpuArray (Parallel Computing Toolbox)。有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
gpuArray
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 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处