是不是为NaN工作

时间:2016-06-09 00:39:05

标签: matlab nan

如果我这样做

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

如何让NaN成员工作?

1 个答案:

答案 0 :(得分:11)

遵循NaN ~= NaNismember treats 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