Re: SameTest in Union
- To: mathgroup at smc.vnet.net
- Subject: [mg61140] Re: [mg61106] SameTest in Union
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Tue, 11 Oct 2005 03:21:13 -0400 (EDT)
- Reply-to: hanlonr at cox.net
- Sender: owner-wri-mathgroup at wolfram.com
lst={1.1101,1.11095,1.11076,1.09,2.3523,2.352,2.35211}; Union[lst,SameTest->(Abs[#1-#2]<10^-2&)] {1.09,1.1101,2.352} Union[lst,SameTest->(Abs[#1-#2]<9*^-1&)] {1.09,2.352} Bob Hanlon > > From: Jack Goldberg <jackgoldberg at comcast.net> To: mathgroup at smc.vnet.net > Date: 2005/10/10 Mon AM 02:40:08 EDT > Subject: [mg61140] [mg61106] SameTest in Union > > Hi Folks, > > I know there is a simple answer to this question but the help index > idoes not help! > > I have a list, something like this: > > lst = {1.1101, 1.11095, 1.11076, 1.09, 2.3523, 2.352. 2.35211} > > I want to remove from the list those entries which are near each > other but not identical, leaving only one representative for each of > these numbers. One approach is to use Union with the option > SameTest->???. Here the same test might be that the difference > between entries is less than, say 10^(-2). But I can't seem to get > SameTest to work. So, what I want is > > Union[ lst, SameTest- > ?] > > so that the union returns > > {1.1101, 2.35211} > > Here, I chose 2 representatives. Any other choice is OK; say, > > {1.11095, 2.352} > > is also satisfactory. > > There may be other ways to do this, but I thought of Union first. > Perhaps, Cases or Select might be better. Any help is appreciated. > > Jack > >