如果我做
ismember([NaN 0 3 2],[0 NaN])
Run Code Online (Sandbox Code Playgroud)
那么输出就是
0 1 0 0
Run Code Online (Sandbox Code Playgroud)
我明显期待的地方
1 1 0 0
Run Code Online (Sandbox Code Playgroud)
我试过了
ismember(['3' 0 3 2],[0 '3'])
Run Code Online (Sandbox Code Playgroud)
那么输出就是
1 1 0 0
Run Code Online (Sandbox Code Playgroud)
我怎样才能为NaN工作?
Tro*_*kin 11
遵循惯例NaN ~= NaN,ismember 将NaN值视为不同.适用于您的特定用例的快速垫片将是:
>> 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
Run Code Online (Sandbox Code Playgroud)