Re: Selecting Many Things Rather Than Selecting One Thing FromMany
- To: mathgroup at smc.vnet.net
- Subject: [mg66201] Re: [mg66180] Selecting Many Things Rather Than Selecting One Thing FromMany
- From: "David Annetts" <davidannetts at aapt.net.au>
- Date: Thu, 4 May 2006 05:19:54 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Hi Gregory,
> 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.
Firstly, isolate the first column using All (eg test[[All, 1]]). Next, use
Position to find the rows that contain any of the elements in your target
vector like
rownum = Position[test[[All, 1]], #]& /@ target//Flatten.
rownum has non-zero length you can then isolate the appropriate rows using
All again, for example,
If[Length@rownum > 0, test[[#, All]]& /@ rownum]
Regards,
Dave.