Re: Dropping Similar Numbers from List

*To*: mathgroup at smc.vnet.net*Subject*: [mg60596] Re: Dropping Similar Numbers from List*From*: Peter Pein <petsie at dordos.net>*Date*: Wed, 21 Sep 2005 03:20:37 -0400 (EDT)*References*: <dgolfn$hrg$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

andre schrieb: > My data set has some numbers which differ by a small amount, say one > part in 10^-15, that I don't want to appear more than once. If they > were identical, I would just use Union[data] and be finished. Is there > a way to set a tollerance for the Union function? > > I tried to use SetPrecision to get rid of the unwanted extra digits, > but Union[SetPrecision[data,n]] gives the same result as Union[data]. > What exactly does SetPrecision do? It seems that it's not just > dropping the digits beyond the limit I set. > > Andre > Hi Andre, have a look at the documentation. You can specify as Option SameTest a function to decide which elements of a set are considered equal. In[1]:= x0 = 1.234; vec = x0 + Range[3]/10^10; Outer[Equal, vec, vec, 1] Out[3]= {{True, False, False}, {False, True, False}, {False, False, True}} In[4]:= Union[vec] Out[4]= {1.2340000001, 1.2340000002, 1.2340000003} In[5]:= Union[vec, SameTest -> (Abs[#1 - #2] < Abs[#1 + #2]/10^8 & )] Out[5]= {1.2340000001} -- Peter Pein, Berlin GnuPG Key ID: 0xA34C5A82 http://people.freenet.de/Peter_Berlin/