在MATLAB中相当于R语言函数'is.na'

Ven*_*tta 0 matlab r

MATLAB中有与R相同的函数is.na吗?

我正在尝试将以下代码行转换为R代码.

if(sum(is.na(u))>0 || sum(is.na(v))>0)
Run Code Online (Sandbox Code Playgroud)

在哪里uv是向量.

Wol*_*fie 5

如果你在MATLAB中有一个矩阵,那么所有的值都是数字的,NaN或者+/-Inf.如果你只是想确定哪些是NaN那么你应该这样使用isnan:

if any( isnan(u) ) || any( isnan(v) )
Run Code Online (Sandbox Code Playgroud)

注意,你可以像在R中那样使用sumnnz进行>0比较,而不是any如图所示使用,但any这里是适用于可用性和代码可读性的适当函数.

您在评论中提到要检查"缺失"值.还有一个MATLAB函数ismissing,它具有与isnan双矩阵相同的行为.其他变量类型(例如,单元格数组检查'')的行为是不同的,有关详细信息,请参阅链接的文档.