How to find the second closest number?

3 vues (au cours des 30 derniers jours)
Yuli Hartini
Yuli Hartini le 5 Jan 2017
Réponse apportée : KSSV le 5 Jan 2017
I have a matrix looks like this:
A = [1990;1993;1998;2001;2004 ]
And I would like to find the closest value to f=1999 (in this case the first closest value is certainly 1998), but how can I find the second closest value (2001) after I found the first value.
Thanks before
  1 commentaire
David Goodmanson
David Goodmanson le 5 Jan 2017
Hi Yuli, if you take abs(A-your_number) and sort it, you will get the entire list of distances. The sort command also has a second output that will show you the location of each one in the unsorted array.

Connectez-vous pour commenter.

Réponse acceptée

KSSV
KSSV le 5 Jan 2017
clc; clear all ;
A = [1990;1993;1998;2001;2004 ] ;
f = 1999 ;
[val,idx] = sort(abs(f-A)) ;
A(idx)

Plus de réponses (0)

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by