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

Antworten (1)

KL
KL am 12 Mai 2017

0 Stimmen

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

3 Kommentare

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 am 12 Mai 2017
Bearbeitet: KL am 12 Mai 2017
true, I just copy pasted her code
Yuli Hartini
Yuli Hartini am 12 Mai 2017
Thank you guys..
This is very helpful.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu MATLAB finden Sie in Hilfe-Center und File Exchange

Produkte

Gefragt:

am 12 Mai 2017

Kommentiert:

am 12 Mai 2017

Community Treasure Hunt

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

Start Hunting!

Translated by