Re: Is there any efficient easy way to compare two lists with the same length with Mathematica?
- To: mathgroup at smc.vnet.net
- Subject: [mg124469] Re: Is there any efficient easy way to compare two lists with the same length with Mathematica?
- From: Rex <Aoirex at gmail.com>
- Date: Sat, 21 Jan 2012 05:11:25 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
Great. Thanks a lot for all of you. Hope you all have a nice day. On Tue, Jan 17, 2012 at 7:37 AM, Andy Ross <andyr at wolfram.com> wrote: > On 1/17/2012 2: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? >> > > If the vectors are very long and there isn't a good reason to expect that > most false cases will occur early you might consider UnitStep. > > a=RandomReal[{0,1},10^6]; > b=a+1; > c=RandomReal[{0,1},10^6]; > > In[311]:= And@@Thread[b>a]//AbsoluteTiming > Out[311]= {0.858011,True} > > In[312]:= Total[UnitStep[b-a]]==Length[b]//AbsoluteTiming > Out[312]= {0.046801,True} > > In[313]:= And@@Thread[c>a]//AbsoluteTiming > Out[313]= {0.858011,False} > > In[314]:= Total[UnitStep[c-a]]==Length[c]//AbsoluteTiming > Out[314]= {0.046801,False} > > Andy Ross > Wolfram Research