MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: "Sloppy Union"? (Union of a list with *nearly* equal elements)

  • To: mathgroup at smc.vnet.net
  • Subject: [mg41912] Re: "Sloppy Union"? (Union of a list with *nearly* equal elements)
  • From: wself at msubillings.edu (Will Self)
  • Date: Mon, 9 Jun 2003 05:20:56 -0400 (EDT)
  • References: <bbv4ni$23f$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

AES/newspost <siegman at stanford.edu> wrote in message news:<bbv4ni$23f$1 at smc.vnet.net>...
> I'm trying to make a "Sloppy Union" that will eliminate elements of a 
> list that are *almost* but not precisely duplicates of each other; and 
> Union[ ] has the "SameTest->test" option which looks like what I need.
> 
> I don't understand, however, why the following approach seems to work
> 
>     Remove["Global`*"]
> 
>     sloppyData = Table[Random[Integer, {1000,1005}]
>                                 + Random[Real, {-0.01,0.01}], {20}]
> 
>     Union[sloppyData, SameTest -> (Abs[#1-#2]<10.^-1&)]
> 
> but the following doesn't
> 
>   Remove["Global`*"]
> 
>   sloppyData = Table[Random[Integer, {1000,1005}]
>                                 + Random[Real, {-0.01,0.01}], {20}]
> 
>   sharperData = SetPrecision[sloppyData, 4]
> 
>   Union[sharperData, SameTest -> (Abs[#1-#2]<10.^-1&)]
> 
> --even though shaperData seems to have reduced precision.

SetPrecision doesn't actually change the data.

FullForm[SetPrecision[1000.2, 4]]

Union, along with SameTest, is working with the original data.  You
can use Round to actually change the data.


  • Prev by Date: Re: How do I extract a non-imaginary answer from an answer set?
  • Next by Date: Strange behavior of Cross[]
  • Previous by thread: "Sloppy Union"? (Union of a list with *nearly* equal elements)
  • Next by thread: Re: "Sloppy Union"? (Union of a list with *nearly* equal elements)