Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2009

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

Search the Archive

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

  • To: mathgroup at smc.vnet.net
  • Subject: [mg99543] Re: Some function like Position[] but uses criteria, not pattern?
  • From: Dana DeLouis <dana01 at me.com>
  • Date: Thu, 7 May 2009 06:38:46 -0400 (EDT)

Hi.  Same solution as others, just displayed differently for small  
arrays.

m = RandomInteger[{9}, {10, 10}];
sol = Position[m, _?(# > 3 &)];
MatrixForm[SplitBy[sol, First]]

= = =
HTH
Dana DeLouis


Nasser Abbasi wrote:
 > 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
 >
 >
 >
 >



  • Prev by Date: Re: Given a matrix, find position of first non-zero element
  • Next by Date: Re: Picking Off Lists That Have No Numbers
  • Previous by thread: Re: Some function like Position[] but uses criteria, not pattern?
  • Next by thread: LinearModelFit vs. Fit with low precision/accuracy data