Re: Finding position of an element in a list:
- To: mathgroup at smc.vnet.net
- Subject: [mg84005] Re: [mg83986] Finding position of an element in a list:
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Thu, 6 Dec 2007 07:20:15 -0500 (EST)
- Reply-to: hanlonr at cox.net
nearestPosition[xlis_List, val_?NumericQ] := Flatten[Position[xlis, #]] & /@ Nearest[xlis, val]; xlis = {0, 1, 3, 10, 4, 5, 5.5, 10.25}; nearestPosition[xlis, 6] {{7}} xlis = {0, 1, 6.5, 10, 4, 5, 5.5, 10.25}; nearestPosition[xlis, 6] {{3}, {7}} Bob Hanlon ---- Gopinath Venkatesan <gopinathv at ou.edu> wrote: > Hello Friends, > > (This is an easy problem, but I was unable to get it work in Mathematica, probably because of the precision - I tried setting precision too, still got stuck) > > Suppose we have a list, xlis, having some elements, and I have to find one nearest value I am interested in that list. In the below example, I wanted to find the position of a number belonging to list and close to 6 (which is 5.5 located at 7th). > > I can do this: > > xlis = {0, 1, 3, 10, 4, 5, 5.5, 10.25}; > dropOuterBraces[lst_List] := > StringTake[#1, {2, StringLength[#1] - 1}] &[ > ToString[lst]]; (* took from previous help posted by Peter Pein *) > n1 = Nearest[xlis, 6] > eval = dropOuterBraces[n1] > Position[xlis, eval] > Position[xlis, 5] > > As you see, the last but one command returns nothing, and we have to explicitly say the number to return the position. > > Or should some other command be used to extract the position of an arbitrary number in a list? > > Same with the case of MemberQ command, it gives True for some and False for some. For example, consider this list, > > xlis = Table[N[((1 - Cos[(j - 1)/9 \[Pi]])/2) 1.32], {j, 1, 10}]; > dropOuterBraces[lst_List] := > StringTake[#1, {2, StringLength[#1] - 1}] &[ToString[lst]] > > eval = Nearest[xlis, 0.32]; > xlis > elem = dropOuterBraces[eval] > MemberQ[xlis, 0.545392] > MemberQ[xlis, 0.33] > Position[xlis, 0.33] > Position[xlis, elem] > > Please hint where I am wrong. > > Thanks, > > Gopinath Venkatesan > Graduate Student > University of Oklahoma >