Re: Is there any efficient easy way to compare two lists with the same length with Mathematica?
- To: mathgroup at smc.vnet.net
- Subject: [mg124454] Re: Is there any efficient easy way to compare two lists with the same length with Mathematica?
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Fri, 20 Jan 2012 01:51:01 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201201181057.FAA16469@smc.vnet.net> <201201191010.FAA03651@smc.vnet.net> <CAO-JnY0vccWRr0puiMh6BSm8Hpcdd4oOPEZbqoXNjZHtpbuu=A@mail.gmail.com>
Well, actually both. The vector spaces R^n for n>1 have lots of different orders arising from the natural total order on R (the real numbers) and none of them is in any sense "canonical". In fact, of course, mathematica does have a default ordering, which is lexicographical, as you can see here: OrderedQ[{1, 4}, {3, 3}] True and not the product ordering which is only a partial order. In any case, I don't think any of these ordering should by assumed when one applies the symbol <= etc. Andrzej On 19 Jan 2012, at 18:25, Ralph Dratman wrote: > "Comparisons such as {3, 4} >= {2, 5} do not have a canonical meaning..." > > Andrej, > > Are you referring to a canonical meaning within Mathematica, or to > the canonical meaning in some wider realm of mathematics? > > I ask because I have seen the expression "canonical" used at Wolfram > in the past, and I am not sure what is intended. > > How do we determine what the canonical meaning (if any) of an expression is? > > Ralph > > > On Thu, Jan 19, 2012 at 5:10 AM, Andrzej Kozlowski <akoz at mimuw.edu.pl> 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 >>> >> >>
- References:
- Re: Is there any efficient easy way to compare two lists with the same length with Mathematica?
- From: Murray Eisenberg <murray@math.umass.edu>
- Re: Is there any efficient easy way to compare two lists with the same length with Mathematica?
- From: Andrzej Kozlowski <akoz@mimuw.edu.pl>
- Re: Is there any efficient easy way to compare two lists with the same length with Mathematica?