selecting an element of a vector

How to select an element of a vector which is nearest to the given value xp.
Suppose we have a vector
x=[1 1.05 1.1 1.15 1.2 1.25]
a) if xp=1.18, the output should be 1.2 (which is nearest to 1.18)
b) if xp=1.12, the output should be 1.1 (which is nearest to 1.12)

2 Comments

madhan ravi
madhan ravi on 23 Oct 2018
Edited: madhan ravi on 23 Oct 2018
b) if xp=1.12, the output should be 1.1 (which is nearest to 1.12)
nearest to 1.12 is 1.15 ?? not 1.1 , whats the logic behind it ,explain to understand
1.1 is nearest to 1.12 than 1.15

Sign in to comment.

 Accepted Answer

KALYAN ACHARJYA
KALYAN ACHARJYA on 23 Oct 2018
Edited: KALYAN ACHARJYA on 23 Oct 2018
x=[1 1.05 1.1 1.15 1.2 1.25];
xp=input('Enter the xp value: ');
[d, idx]=min(abs(x-xp));
fprintf('The output is%.2f',x(idx));
Command Window
Enter the xp value: 1.18
The output is1.20

2 Comments

What is [d, idx]
KALYAN ACHARJYA
KALYAN ACHARJYA on 23 Oct 2018
Edited: KALYAN ACHARJYA on 23 Oct 2018
idx is giving the index position of x, which is close to xp
if idx=1, that means x(idx)=x(1)=1 (First element)
d gives the minimum difference of x-xp, abs absolute value (+ve)

Sign in to comment.

More Answers (1)

How to select an element of a vector which is previous to the given value xp.
Suppose we have a vector
x=[1 1.05 1.1 1.15 1.2 1.25]
a) if xp=1.18, the output should be 1.15 (which is previous to 1.18)
b) if xp=1.12, the output should be 1.1 (which is previous to 1.12)

Community Treasure Hunt

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

Start Hunting!