MathGroup Archive 2011

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

Search the Archive

Re: replace with closest value

  • To: mathgroup at smc.vnet.net
  • Subject: [mg119521] Re: replace with closest value
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Wed, 8 Jun 2011 07:11:43 -0400 (EDT)
  • Reply-to: hanlonr at cox.net

AA = {
   1.3, 1.5, 1.6, 1.8, 2.1,
   2.3, 2.6, 2.9, 3.3, 3.7,
   4.2, 4.7, 5.2, 5.9, 6.6,
   7.4, 8.3, 9.4, 10.6, 11.8,
   13.1, 14.8, 16.9, 19., 21.5,
   23.6};

BB = {
   1.2, 1.4, 1.6, 1.8, 2,
   2.25, 2.5, 2.75, 3, 3.25,
   3.5, 3.75, 4, 5, 6,
   8, 10, 15, 20, 25,
   40, 60, 100};

Your desired output does not agree with what you described. For example, you show 1.5 in your output but 1.5 it is not in BB.

First /@ (Nearest[BB, #] & /@ AA)

{1.4, 1.4, 1.6, 1.8, 2, 2.25, 2.5, 3, 3.25, 3.75, 4, 5, 5, 6, 6, 8, 8, 10, \
10, 10, 15, 15, 15, 20, 20, 25}

To avoid precision issues you may want to Rationalize first

First /@ (Nearest[Rationalize[BB], #] & /@ Rationalize[AA]) /. 
 x_Rational :> N[x]

{1.2, 1.4, 1.6, 1.8, 2, 2.25, 2.5, 3, 3.25, 3.75, 4, 5, 5, 6, 6, 8, 8, 10, \
10, 10, 15, 15, 15, 20, 20, 25}


Bob Hanlon

---- graser <graser at gmail.com> wrote: 

=============
Hi

I have a some question for you!

Let's say there is a list like that
AA={1.3, 1.5, 1.6, 1.8, 2.1, 2.3, 2.6, 2.9, 3.3, 3.7, 4.2, 4.7, 5.2,
5.9, 6.6, 7.4, 8.3, 9.4, 10.6, 11.8, 13.1, 14.8, 16.9, 19., 21.5,
23.6}.
Length[AA]=26
I want to replace the element in the list with a closest number I
specify in my list  BB,
BB={1.2, 1.4, 1.6, 1.8, 2, 2.25, 2.5, 2.75, 3, 3.25, 3.5, 3.75, 4, 5,
6, 8 , 10 , 15, 20, 25, 40, 60, 100},
Length[BB]=23
so that the list AA after I replace will be

AA={1.2, 1.5, 1.6, 1.8, 2. 2.25, 2.5,3.........20, 25}
Length[AA]=26.

I wonder if anyone can help me to solve this problem!




  • Prev by Date: Re: replace with closest value
  • Next by Date: Re: function
  • Previous by thread: Re: replace with closest value
  • Next by thread: Re: replace with closest value