MathGroup Archive 2008

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

Search the Archive

choose elements from list based on elements in different list

  • To: mathgroup at smc.vnet.net
  • Subject: [mg86707] choose elements from list based on elements in different list
  • From: Claus <clausenator at gmail.com>
  • Date: Wed, 19 Mar 2008 05:23:33 -0500 (EST)
  • Organization: Comp.Center (RUS), U of Stuttgart, FRG

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}


  • Prev by Date: Re: importing nb files
  • Next by Date: Re: Using a logical Or in the function definition
  • Previous by thread: Re: Exceptions Style Problem
  • Next by thread: Re: choose elements from list based on elements in different list