ismember 不为 NaN 工作

Posted

技术标签:

【中文标题】ismember 不为 NaN 工作【英文标题】:ismember not working for NaN 【发布时间】:2016-10-09 11:14:58 【问题描述】:

如果我这样做

ismember([NaN 0 3 2],[0 NaN])

那么输出是

0     1     0     0

我显然期望的地方

1     1     0     0

我试过了

ismember(['3' 0 3 2],[0 '3'])

那么输出就是

1     1     0     0

如何让 ismember 为 NaN 工作?

【问题讨论】:

【参考方案1】:

遵循NaN ~= NaNismembertreats NaN values as distinct 的约定。适用于您给定用例的快速填充程序是:

>> ismembernan = @(a,b) ismember(a,b) | (isnan(a) & any(isnan(b)));
>> a = [NaN 0 3 2];
>> b = [0 NaN];
>> ismembernan(a,b)
ans =
     1     1     0     0

【讨论】:

以上是关于ismember 不为 NaN 工作的主要内容,如果未能解决你的问题,请参考以下文章

vbscript IsMember

实体列表的 CriteriaBuilder 和 isMember (Hibernate)

matlab查找某一行或者某一列在矩阵中的位置

是组的当前用户成员

如果不是会员则显示表格

MATLAB 的 dir函数fullfile函数