MathGroup Archive 2008

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

Search the Archive

Re: Mapping A Condition Across Two Different Lists

  • To: mathgroup at smc.vnet.net
  • Subject: [mg91754] Re: Mapping A Condition Across Two Different Lists
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Sun, 7 Sep 2008 05:36:28 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <g9t6k5$j6g$1@smc.vnet.net>

Gregory Lypny wrote:

> Not sure how to do this using Map, or even if it's possible.
> 
> I can compare a target value to each value in a list like this.
> 
> targetX = 5; listX = {4, 9, 2, 11, 4};
> targetX > # & /@ listX
> 
> {True, False, True, False, True}
> 
> I can do the same for another target and another list.
> 
> targetY = 3; listY = {4, 0, 1, 8, 6};
> targetY > # & /@ listY
> 
> {False, True, True, False, False}
> 
> But can I do it in a similar way for the AND or OR condition without  
> having to resort to the Table command?
> 
> Table[targetX > listX[[i]] && targetY > listY[[i]], {i, Length@listX}]
> 
> {False, False, True, False, False}
> 
> Table[targetX > listX[[i]] || targetY > listY[[i]], {i, Length@listX}]
> 
> {True, True, True, False, True}

Among other ways, you could map over the transpose of list of the two 
lists, e.g.

   In[1]:= targetX = 5; listX = {4, 9, 2, 11, 4};
     targetY = 3; listY = {4, 0, 1, 8, 6};

     targetX > #[[1]] && targetY > #[[2]] & /@ Transpose[{listX, listY}]

     targetX > #[[1]] || targetY > #[[2]] & /@ Transpose[{listX, listY}]

   Out[3]= {False, False, True, False, False}

   Out[4]= {True, True, True, False, True}

Best regards,
-- Jean-Marc



  • Prev by Date: Re: Mathematica and F#
  • Next by Date: Re: Mapping A Condition Across Two Different Lists
  • Previous by thread: Re: Mapping A Condition Across Two Different Lists
  • Next by thread: Re: Mapping A Condition Across Two Different Lists