MATLAB Answers

I G
0

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

Asked by I G
on 7 May 2019
Latest activity Edited by Stephen Cobeldick on 7 May 2019
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?

  0 Comments

Sign in to comment.

Products


Release

R2015a

1 Answer

Answer by Stephen Cobeldick on 7 May 2019
Edited by Stephen Cobeldick on 7 May 2019
 Accepted Answer

>> 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(:))))

  0 Comments

Sign in to comment.