Error with Uniquetol: " Repetitive numbers not being removed"

2 vues (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
>>

Catégories

En savoir plus sur Structures dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by