## How to get nearest values in matrix and save indexes of these values?

Asked by I G

### I G (view profile)

on 7 May 2019
Latest activity Edited by Stephen Cobeldick

### Stephen Cobeldick (view profile)

on 7 May 2019
Accepted Answer by Stephen Cobeldick

### Stephen Cobeldick (view profile)

I have values saved as pi=[5 10 15].
And I have another values saved in puk, which is 401x1 double.
I need to find values in puk which are nearest to the values of pi, and as result I need to have indexes of that values in puk.
So I do not know how to search for nearest values in puk? And how to get indexes of these values?

R2015a

### Stephen Cobeldick (view profile)

Answer by Stephen Cobeldick

### Stephen Cobeldick (view profile)

on 7 May 2019
Edited by Stephen Cobeldick

### Stephen Cobeldick (view profile)

on 7 May 2019

>> X = [5,10,15];
>> Y = 0:7/5:30;
>> [~,Z] = min(abs(X-Y(:))) % the indices of the closest values:
Z =
5 8 12
>> Y(Z) % the corresponding values in Y:
ans =
5.6 9.8 15.4
For MATLAB versions before R2016b you will need to use bsxfun:
[~,Z] = min(abs(bsxfun(@minus,X,Y(:))))