Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: Finding position in array
Replies: 10   Last Post: Jun 6, 2014 6:42 PM

 Messages: [ Previous | Next ]
 dpb Posts: 9,850 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...

--

Date Subject Author
6/5/14 Helveticus
6/6/14 dpb
6/6/14 Helveticus
6/6/14 dpb
6/6/14 Bruno Luong
6/6/14 dpb
6/6/14 Bruno Luong
6/6/14 dpb
6/6/14 Bruno Luong
6/6/14 dpb
6/6/14 Bruno Luong