MathGroup Archive 1999

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

Search the Archive

Re: Counting list elements above/below a given value

  • To: mathgroup at smc.vnet.net
  • Subject: [mg17279] Re: [mg17202] Counting list elements above/below a given value
  • From: BobHanlon at aol.com
  • Date: Fri, 30 Apr 1999 23:22:19 -0400
  • Sender: owner-wri-mathgroup at wolfram.com

In a message dated 4/26/99 6:44:09 AM, w.sampson at umist.ac.uk writes:

>I wish to count the number of elements within a list above
>a given value. I can do this using the following:
>
>Length[Select[Flatten[listname], value > #1&]]
>
>However, my list is a 280 x 280 matrix and consequently
>this takes a while to evaluate. My guess is that there
>must be something more efficient. I've tried:
>
>Count[listname, value > #1&]
>
>but the output given is 0, which I know to be incorrect.
>
>Any ideas appreciated.
>

Bill,

Your test is backwards to find elements above a given value; 
however, your initial approach is about the quickest of a few 
that I have tried.

value = 0.5; n = 280;
listname= Table[Random[], {i, n}, {j, n}];

Length[Select[Flatten[listname], #>value&]]//Timing
{2.8 Second,39224}

Length[Cases[Flatten[listname], x_?(#>value&)]]//Timing
{3.63333 Second,39224}

Plus @@ Cases[Flatten[listname], x_?(#>value&) -> 1]//Timing
{3.71667 Second,39224}

Count[Flatten[listname], x_?(#>value&)]//Timing
{3.51667 Second,39224}

Length[Cases[Flatten[listname]-value, _?Positive]]//Timing
{3.31667 Second,39224}

Length[Select[Flatten[listname]-value, Positive[#]&]]//Timing
{3.3 Second,39224}

Length[Flatten[Select[#-value, Positive[#]&]& /@ listname]]//Timing
{3.41667 Second,39224}

Length[Flatten[Cases[#-value, _?Positive]& /@ listname]]//Timing
{3.31667 Second,39224}

Bob Hanlon


  • Prev by Date: Re: CleanSlate and Version 3
  • Next by Date: R: Mathematica 3.0 and Visual Basic
  • Previous by thread: Re: CleanSlate and Version 3
  • Next by thread: Re: Counting list elements above/below a given value