Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

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

Search the Archive

Re: Is there any efficient easy way to compare two lists with the same length with Mathematica?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg124445] Re: Is there any efficient easy way to compare two lists with the same length with Mathematica?
  • From: Murray Eisenberg <murray at math.umass.edu>
  • Date: Fri, 20 Jan 2012 01:47:54 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com


Yes, I understand the danger of having greater, etc., threading 
automatically over lists.

But one might make the same argument as to whether == should thread 
automatically. For example, suppose you are modeling rational numbers as 
pairs of integers. Then you would want {a,b} == {c, d} to be True 
exacgly when a d == b c.

On 1/19/12 5:10 AM, Andrzej Kozlowski wrote:
> I do not think I would like Mathematica to automatically thread Greater
> etc over lists or automatically return False or True. Comparisons such
> as {3, 4}>= {2, 5} do not have a canonical meaning and they may arise
> in programs where the fact that they are kept unevaluated can be
> convenient e.g this
> Min /@ ({3, 4}>= {2, 5})  is a convenient way to compare minima
> (Min@{3,5}>=Min@{2,5} is quite a lot longer...).
> In general, there has to be a balance between the sort of things
> Mathematica does automatically and the sort of things that Mathematica
> leaves unevaluated until you make your intention more clear (by using
> Thread, for instance). In this particular case I think the second choice
> is the right one.
>
> Andrzej Kozlowski
>
>
>
> On 18 Jan 2012, at 11:57, Murray Eisenberg wrote:
>
>> Over time more and more things like this have been extended to work
>> automatically on lists. But so far, as you discovered, not GreaterEqual
>> (nor Greater, etc.).  Here's one way without explicitly using Table:
>>
>>    a = RandomInteger[{0, 20}, 5];
>>    b = RandomInteger[{0, 20}, 5];
>>    And @@ MapThread[Greater, {a, b}]
>>
>> The key there is MapThread, which does what you (and I) would evidently
>> like Mathematica to do automatically -- in effect, to make GreaterEqual
>> have Listable as an Attribute.
>>
>> On 1/17/12 3:34 AM, Rex wrote:
>>> Given two lists `A={a1,a2,a3,...an}` and `B={b1,b2,b3,...bn}`, I would
>>> say `A>=B` if and only if all `ai>=bi`.
>>>
>>> There is a built-in logical comparison of two lists, `A==B`, but no
>>> `A>B`.
>>> Do we need to compare each element like this
>>>
>>> And@@Table[A[[i]]>=B[[i]],{i,n}]
>>>
>>> Any better tricks to do this?
>>>
>>
>> --
>> Murray Eisenberg                     murray at math.umass.edu
>> Mathematics&  Statistics Dept.
>> Lederle Graduate Research Tower      phone 413 549-1020 (H)
>> University of Massachusetts                413 545-2859 (W)
>> 710 North Pleasant Street            fax   413 545-1801
>> Amherst, MA 01003-9305
>>
>
>

-- 
Murray Eisenberg                     murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower      phone 413 549-1020 (H)
University of Massachusetts                413 545-2859 (W)
710 North Pleasant Street            fax   413 545-1801
Amherst, MA 01003-9305



  • Prev by Date: Re: Tips for writing correct, non trivial Mathematica Libraries
  • Next by Date: Re: Slow plotting of reflected parametric "butterflies"
  • Previous by thread: Re: Is there any efficient easy way to compare two lists with the same length with Mathematica?
  • Next by thread: Re: Is there any efficient easy way to compare two lists with the same length with Mathematica?