Feed on
Posts
Comments

a friend asked:

matlab question: i have an array of data. how do i get matlab to find the position of an entry closest to some arbitrary value?
for instance, i would have
a= [1; 4; 6; 8; 12]
i want to search for 9 and have matlab spit back 4, the entry in a closest to 9.

here’s one way to solve that problem (assuming that variable k=9):

>> [min_difference, array_position] = min(abs(a - k))

wheree array_position is the desired index value.

Stumble it!

if that was helpful ...

check out the other tips and tricks i've compiled on these pages. you might learn something else interesting!

12 Responses to “in matlab, find the array position of an entry closest to some arbitrary value”

  1. on 01 Feb 2007 at 1:01 pm Cruchon

    Something like
    [rte,index]=min(abs(X-x0)); where x0 is the target and X is the array you want to search in works. The answer is index.

  2. on 01 Feb 2007 at 1:08 pm Lawrence David

    i believe that’s exactly what i wrote above.

  3. on 29 May 2007 at 10:28 am Roman

    Thanks guys!

  4. on 20 Jul 2007 at 4:00 pm Hilikus

    ??? that returns the difference between the closest and the target vale not its INDEX

  5. on 20 Jul 2007 at 4:13 pm lawrence

    hilikus:

    the second argument returned is the index; the first argument returned is the difference.

  6. on 20 Jul 2007 at 4:21 pm Hilikus

    Bah, nevermind, i didnt see the double output

  7. on 15 Sep 2007 at 10:18 am D

    >> [trash array_position] = min(abs(a - k))

    probably should have a “,” or odd things may happen.

    [trash, array_position] = min(abs(a - k))

    I wasted a lot of time recently and that simple problem caused it.

    D

  8. on 29 Feb 2008 at 2:58 pm jess

    I love you for this! *mwah*

  9. on 05 Mar 2008 at 12:44 pm huzzzaa

    thanks guys!!!!!!!!! saved me hours developing my own algorithm!

  10. on 28 May 2008 at 12:43 pm Chan

    Man, you guys really rock! Thanks a lot, saved me hours. Keep up the good work!!

  11. on 27 Aug 2008 at 12:01 pm marchessoux

    Thanks a lot, exacty what I needed, so economy of many time ;=)
    Cédric

  12. on 23 Sep 2008 at 11:44 am dave

    can you do something similar but for several k’s at a time?

Did I get this wrong? Let me know!

Trackback URI | Comments RSS

More blogs about http://desk.stinkpot.org:8080/tricks.