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

Answers (1)

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

3 Comments

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 on 12 May 2017
Edited: KL on 12 May 2017
true, I just copy pasted her code
Thank you guys..
This is very helpful.

Sign in to comment.

Products

Asked:

on 12 May 2017

Commented:

on 12 May 2017

Community Treasure Hunt

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

Start Hunting!