Re: choose elements from list based on elements in different list

*To*: mathgroup at smc.vnet.net*Subject*: [mg86752] Re: [mg86707] choose elements from list based on elements in different list*From*: DrMajorBob <drmajorbob at bigfoot.com>*Date*: Thu, 20 Mar 2008 02:53:57 -0500 (EST)*References*: <8129857.1205982070064.JavaMail.root@m08>*Reply-to*: drmajorbob at longhorns.com

> It seems to me that there are a few too many steps involved here, We can't possibly guess which steps were necessary and which were not, as you haven't told us what answers you actually needed... and which you did not. Bobby On Wed, 19 Mar 2008 05:23:33 -0500, Claus <clausenator at gmail.com> wrote: > Hi, > I'm trying to choose elements from list based on elements in different > list and I came up with the ideas listed below. It seems to me that > there are a few too many steps involved here, and I need to run this on > larger lists (~20000 entries). > Are there ways to improve this? > Thanks, > Claus > > Here is the mathematica code: > > Reihe1={22,33,44,0,0,16,5,0,0,0} > Reihe2={16,27,0,0,5,11,5,0,0,12} > > {22, 33, 44, 0, 0, 16, 5, 0, 0, 0} > > {16, 27, 0, 0, 5, 11, 5, 0, 0, 12} > > (*Find out where in Reihe1 and in Reihe2 are Zeros and notZeros*) > > Reihe1Is0 = Thread[Reihe1 == 0] > Reihe1Not0 = Thread[Reihe1 != 0] > Reihe2Is0 = Thread[Reihe2 == 0] > Reihe2Not0 = Thread[Reihe2 != 0] > > {False, False, False, True, True, False, False, True, True, True} > > {True, True, True, False, False, True, True, False, False, False} > > {False, False, True, True, False, False, False, True, True, False} > > {True, True, False, False, True, True, True, False, False, True} > > (*Select the values of Reihe1 and Reihe2 which are of interest > > There are 4 Cases (not all of them calculated later) : > Case1 : Reihe1 and Reihe2 are 0 > Case2 : Reihe1 and Reihe2 are NOT 0 > Case3 : (Reihe2 is NOT 0) AND (Reihe1 is 0) > Case4 : (Reihe1 is NOT 0) AND (Reihe2 is 0)*) > > PreCase3=Pick[Reihe2,Reihe1Is0] > PreCase4=Pick[Reihe1,Reihe2Is0] > > {0, 5, 0, 0, 12} > > {44, 0, 0, 0} > > Case3=Select[PreCase3,#>0&] > Case4=Select[PreCase4,#>0&] > > {5, 12} > > {44} > > -- DrMajorBob at longhorns.com