2016-06-09 43 views
4

如果我做ismember不工作楠

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楠的工作?

回答

11

按照約定,NaN ~= NaN,ismembertreats 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