MATLAB: Help with the unique function

MATLABmatlab function

The unique function fails to sort the following redundancy;
K>> b
b = [15.0000 15.0000 15.0000 -5.0000 15.0000]
K>> unique(b)
ans = -5.0000 15.0000 15.0000 15.0000 15.0000
but when the vector is made up of integers:
a = [15 15 15 15 -5 15]
K>> unique(ans)
ans = -5 15
How can I solve this problem?

Best Answer

If you look at the output of
b - 15
You'll see that some (or all) these 15.0000 are not actually 15.0000 but something very close to it but different from each other.
The solution: use uniquetol:
uniquetol(b); %you can specify the tolerance as well.