Closest number problem in m-file

I need more help..
I have script looks like this
A = [2 5 9 15];
f = input('Enter input : ');
[val, idx]=sort(abs(f-A));
[val, idx]=min(abs(f-A));
A(idx)
If the input I enter is 3
Of course the output of A(idx) was 2
But I want the value output are 5 (the second closest of 3).
As well as for different inputs.
Please help me..
Thanks before

Réponses (1)

KL
KL le 12 Mai 2017

0 votes

[val, idx]=sort(abs(f-A));
A(idx(2))

3 commentaires

For the first line, even better if you're not using val:
[~, idx] = sort(abs(f-A));
which makes it clear that you only want the indices.
KL
KL le 12 Mai 2017
Modifié(e) : KL le 12 Mai 2017
true, I just copy pasted her code
Yuli Hartini
Yuli Hartini le 12 Mai 2017
Thank you guys..
This is very helpful.

Connectez-vous pour commenter.

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by