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

MathGroup Archive 2009

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

Search the Archive

Re: Conditional list indexing

  • To: mathgroup at smc.vnet.net
  • Subject: [mg95898] Re: Conditional list indexing
  • From: David Bailey <dave at removedbailey.co.uk>
  • Date: Thu, 29 Jan 2009 05:56:54 -0500 (EST)
  • References: <glpgd4$lha$1@smc.vnet.net>

daniele wrote:
> Hello everybody,
> I'd like to know how I can get the indices of the elements in a list
> that satisfy a certain condition. Here's an example: suppose I have
> the list
> 
> a = Table[Prime[i],{i,10}];
> 
> that contains {2,3,5,7,11,13,17,19,23,29}.
> 
> If I execute the command
> 
> b = Select[a,#>15&];
> 
> b will contain {17,19,23,29}. I'd like to find a way to obtain a third
> list, say c, that will contain {7,8,9,10}, i.e. the indices of the
> elements in list a that are greater than 15.
> 
> Thank you,
> Daniele
> 
> 
How about this:

In[1]:= ll = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29}

Out[1]= {2, 3, 5, 7, 11, 13, 17, 19, 23, 29}

In[2]:= xx = Select[MapIndexed[{#1, #2[[1]]} &, ll], #[[1]] > 15 &]

Out[2]= {{17, 7}, {19, 8}, {23, 9}, {29, 10}}

In[3]:= xx[[All, 2]]

Out[3]= {7, 8, 9, 10}

I am sure there are many alternative ways!

David Bailey
http://www.dbaileyconsultancy.co.uk


  • Prev by Date: Re: Permutations...
  • Next by Date: Re: Printing (v7)
  • Previous by thread: Re: Conditional list indexing
  • Next by thread: Re: Conditional list indexing