Try

rng =: ] #~ 1=I.

it's about half as fast because I. is not very well-optimized.

Marshall

On Sun, Sep 24, 2017 at 02:29:31AM -0500, Skip Cave wrote:
> Here's a function I came up with to select numbers in a vector which are
> within some range.
> 
> Find all the numbers between 10 & 100 in a set of random numbers from 0 to
> 200:
> 
> 
>       rng =. 4 : '((({.x)</y)*.(({:x)>/y))#y'
> 
> 
>     10 100 rng ?50$200
> 
> 89 91 32 85 84 27 31 20 28 66 96 93 22 85 39 97 82 35 90 67 34 35 67 95 50
> 
> 
> Between 120 & 180:
> 
> 
>       120 180 rng ?50$200
> 
> 148 163 133 165 150 178 121 146 161 179
> 
> 
> Is there a more concise/efficient way to select numbers in a range?
> 
> Skip Cave
> Cave Consulting LLC
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to