MATLAB Answers

0

Unique not working - may be due to different datatypes in array

Asked by James Morris on 19 Aug 2019
Latest activity Edited by Stephen Cobeldick on 19 Aug 2019
After smoothing out the data from one array I end up with one containing the values shown below. I want to get rid of the duplicate values 7 and 4.6 however unique will not get rid of them. Is this due to the fact that these values are different data types to each other? Any help would be appreciated.
Array
1.40000000000000
6.20000000000000
4.60000000000000
4.60000000000000
3.40000000000000
3.80000000000000
7.00000000000000
7
3.40000000000000
4
4.40000000000000
2.80000000000000
3.20000000000000

  0 Comments

Sign in to comment.

1 Answer

Answer by Walter Roberson
on 19 Aug 2019
 Accepted Answer

Those are not different datatypes.
When you see the same array displaying 7.00000000000000 and 7 both, then what it tells you is that the 7 value is exactly the floating point representation of 7, but that the 7.00000000000000 value is slightly different from 7 exactly. If you were to take Array(7) - Array(8) you would see a very small difference, probably roughly 2E-15 . The value that is exactly 7.0000000000000017763568394002504646778106689453125 displays as 7.00000000000000 in some cases because the default formats do not display all of the digits.

  4 Comments

Show 1 older comment
It looks plausible for your situation.
You're the man Walter, thank you.
You could also try uniquetol, which was designed to handle this situation.

Sign in to comment.