MathGroup Archive 2006

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

Search the Archive

Re: Selecting Many Things Rather Than Selecting One Thing From Many

  • To: mathgroup at smc.vnet.net
  • Subject: [mg66194] Re: [mg66180] Selecting Many Things Rather Than Selecting One Thing From Many
  • From: Hartmut.Wolf at t-systems.com
  • Date: Thu, 4 May 2006 05:19:32 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

> -----Original Message-----
> From: Gregory Lypny [mailto:gregory.lypny at videotron.ca] 
To: mathgroup at smc.vnet.net
> Subject: [mg66194] [mg66180] Selecting Many Things Rather Than 
> Selecting One Thing From Many
> 
> Hello everyone,
> 
> I've discovered another use or need for the Select function, which I  
> suspect requires mapping of some sort.
> 
> In my previous posts, members of this MathGroup kindly showed me how  
> to apply Select to many columns of a matrix at once.  For example,
> 
> (Select[#1, #1 > K & ] & ) /@ Transpose[theMatrix]
> 
> will pull out all values greater than K, where K is a number such as  
> 100.
> 
> But suppose now that K is a list of numbers, such as K={34, 876,  
> 199}, and I simply want to extract or identify all of the 
> rows in the  
> first column of theMatrix equal to any one of those numbers.  How  
> would I do that?  I started with
> 
> Select[theMatrix, #[[1]]==any element of list K]
> 
> and I imagine something similar could be applied to the Position  
> function.
> 
> Any hint would be much appreciated.
> 
> 	Gregory
> 

Gregory,

this is simple and perhaps good enough to identify the rows:

In[6]:= M = Table[Random[Integer, {0, 9999}], {100000}, {5}]; // Timing
Out[6]= {0.282 Second, Null}

In[7]:= Position[M[[All, 1]], 34 | 199 | 876] // Timing
Out[7]= 
{0.046 Second, {{4721}, {11778}, {17337}, {20008}, {20322}, {20934}, {26451}, \
{27608}, {27754}, {32699}, {34359}, {34653}, {39046}, {42495}, {42506}, \
{46940}, {49889}, {52322}, {54645}, {56331}, {57269}, {58562}, {59262}, \
{62137}, {62139}, {65675}, {68442}, {69835}, {71695}, {73574}, {74835}, \
{75793}, {88403}, {89449}, {93625}, {93871}, {97970}}}

In[8]:= M[[59262]]
Out[8]= {199, 7540, 3117, 7756, 9193}

--
Hartmut


  • Prev by Date: Re: Evaluating integrals
  • Next by Date: Re: Is it possible for me to implement associative arrays this way?
  • Previous by thread: Re: Selecting Many Things Rather Than Selecting One Thing From Many
  • Next by thread: Re: Selecting Many Things Rather Than Selecting One Thing From Many