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

MathGroup Archive 2009

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

Search the Archive

Re: Using Select

  • To: mathgroup at smc.vnet.net
  • Subject: [mg97459] Re: Using Select
  • From: Szabolcs Horvát <szhorvat at gmail.com>
  • Date: Fri, 13 Mar 2009 04:54:25 -0500 (EST)
  • References: <gpacsh$ms3$1@smc.vnet.net>

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]


  • Prev by Date: Re: Wolfram/Alpha (Wikipedia page restored)
  • Next by Date: Re: General form of a summation as a function of 2 variables
  • Previous by thread: Re: Using Select
  • Next by thread: Re: Using Select