Re: Using Select
- To: mathgroup at smc.vnet.net
- Subject: [mg97489] Re: Using Select
- From: "Karsten W." <Karsten.G.Weinert at googlemail.com>
- Date: Sat, 14 Mar 2009 05:38:23 -0500 (EST)
- References: <gpacsh$ms3$1@smc.vnet.net> <gpdag1$ju8$1@smc.vnet.net>
Thanks a lot for your suggestions! I learned a lot from them (_? Positive -- n_/; n>0 -- /@) Kind regards, Karsten. On 13 Mrz., 10:54, Szabolcs Horv=E1t <szhor... at gmail.com> wrote: > Karsten W. wrote: > > Hello, > > > here is a problem I have solved but I am not happy with the method > > > I have a data matrix DATA, a list of m ordered n-tuples. I run a > > function on the data matrix which returns a list DATAEVAL with m > > elements. The i-th element of this list corresponds to the i-th tuple > > of the data matrix. I think of this DATAEVAL list as an additional > > column of the data matrix. > > > Now I am only interested in those tuples of the data matrix, where the > > corresponding DATAEVAL list has a value greater than zero. > > > My current approach is the following: I add the DATAEVAL list to the > > data matrix and call Select afterwards: > > > data = Import[...]; > > dataEval = f[data, ...]; > > filteredData = Select[Transpose[Join[Transpose[data], {dataEval}] ], > > Last[#] > 0 &]; > > > This works. However, calling Transpose two times seems not to be the > > most efficient way to solve the problem. > > > As a newbie to Mathematica (and functional programming), I wonder if > > you can point me to a simpler solution? > > Hello Karsten, > > Use Pick[]. > > Pick[DATA, DATAEVAL, n_ /; n > 0]