Some function like Position[] but uses criteria, not pattern?

*To*: mathgroup at smc.vnet.net*Subject*: [mg99389] Some function like Position[] but uses criteria, not pattern?*From*: "Nasser Abbasi" <nma at 12000.org>*Date*: Tue, 5 May 2009 05:37:22 -0400 (EDT)*Reply-to*: "Nasser Abbasi" <nma at 12000.org>

V 7.0 Position[] works by returning position of elements which matches a pattern. This is all good and well. But sometimes, I need to find the positions (i.e index) of elements that matches a criteria, not a pattern. For example, using pattern a = {1, 0, 4, -5, 8} Position[a, 0] Out[15]= {{2}} But what if I wanted the position of the elements which, say, are larger than 3? this is not a pttern, but a criteria. Which in this example should find elements which are in position 3 and 5 in list 'a' above. I can't type Position[a, #1 > 3 & ] Now, Select[] does take a criteria, good, so I could type Select[a, #1 > 3 & ] {4, 8} But I wanted the positions of the elements, not the elements themselves. I could use Select to find the elements, then use Position to find the position of these elements as follows c = Select[a, #1 > 3 & ]; Flatten[(Position[a, #1] & ) /@ c] Out[65]= {3, 5} But I think this is bit messy. I think Position[] or new function similar, should have an option to return position of elements based on criteria, not just pattern. The above gets more messy for me, when I wanted to find position of elements in a matrix based on some criteria. For example, find the position (i.e. row and column) index in a matrix (list of lists) of those elements which matches some criteria. Say >3. thanks, --Nasser

**Follow-Ups**:**Re: Some function like Position[] but uses criteria, not pattern?***From:*Curtis Osterhoudt <cfo@lanl.gov>

**Re: Some function like Position[] but uses criteria, not***From:*DrMajorBob <btreat1@austin.rr.com>

**Re: Some function like Position[] but uses criteria, not***From:*Leonid Shifrin <lshifr@gmail.com>