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
>
>