Error with Uniquetol: " Repetitive numbers not being removed"

1 vue (au cours des 30 derniers jours)
Chris Dan
Chris Dan le 19 Juil 2020
Commenté : Chris Dan le 19 Juil 2020
Hi,
I have this double array by the name " GlobalNMesh", I am attaching the file.
It has some repetitive numbers, as shown
I am using
load('GlobalNMesh.mat')
c = uniquetol(GlobalNMesh)
But I am not getting correct results, repetitive numbers are not being removed...
Does anybody know what changes to make?

Réponse acceptée

Stephen23
Stephen23 le 19 Juil 2020
Set the tolerance to a suitable value, e.g.:
>> uniquetol(GlobalNMesh,1e-3)
ans =
0 0.0336 0.1199 0.1331
  2 commentaires
Bruno Luong
Bruno Luong le 19 Juil 2020
Or simply display more digits to see they are actually not identical
Chris Dan
Chris Dan le 19 Juil 2020
Thanks :)

Connectez-vous pour commenter.

Plus de réponses (1)

dpb
dpb le 19 Juil 2020
Yeah, fix the magnitude of the tolerance interval you want distinguished--by default uniquetol(A) uses 1e-6 for single-precision inputs and 1e-12 for double-precision inputs.
Your values are different only in the 5th/6th position so need a tolerance to reflect that...
>> format long, format compact
>> diff(GlobalNMesh)
ans =
0.033640000000000 0.086250000000000 0.000010000000000 0.013160000000000 0.000040000000000
>> fix(log10(diff(GlobalNMesh)))
ans =
-1 -1 -4 -1 -4
>> uniquetol(GlobalNMesh,1E-4,'DataScale',1)
ans =
0 0.033640000000000 0.119890000000000 0.133060000000000
>>

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by