dpb
Posts:
8,515
Registered:
6/7/07


Re: Finding position in array
Posted:
Jun 6, 2014 9:47 AM


On 6/6/2014 3:06 AM, Sepp wrote: > dpb <none@non.net> wrote in message <lmrh01$m1u$1@speranza.aioe.org>... >> On 6/5/2014 6:04 PM, Sepp wrote: >> > Hi >> > >> > I have an array of real numbers, let's say e.g. >> > >> > a = [1.23, 3.5, 6, 23.54, 44.234, 60.8]; >> > >> > The array is sorted in ascending order. >> > >> > Now I have a new value, let's say 8.54 and I want to find the position >> > in the array a. The position would be after element 6 and before >> element >> > 23.54. I.e. I should somehow retrieve the index position 3 >> > (corresponding to 6) or 4 (corresponding to 23.54). >> > >> > How can I do that efficiently in Matlab? I tried out the find method >> but >> > it doesn't work. >> >> Of course it works... >> >> >> a = [1.23, 3.5, 6, 23.54, 44.234, 60.8]; >> >> x=8.54; >> >> find(x<a,1,'first') >> ans = >> 4 >> >> find(x>a,1,'last') >> ans = >> 3 >> >> >> > Thank you very much. Both approaches works.
Yet another approach somewhat akin to Bruno's...
>> interp1(a,1:length(a),x,'nearest') ans = 3 >>
Depends on just what it is that you're after...


