Get row and column of the closest value of a matrix from a variable
1 view (last 30 days)
I have a latitude vector of dimensions 17 x 1. I have a latitude matrix of dimension 300 x 300.
I would like to find the row and column of the closest value of the matrix for each one of the vector's values. I tried several codes but none of them are working.
How can I solve this problem ?
Thanks in advance !
Adam on 10 Mar 2020
Edited: Adam on 10 Mar 2020
If you are using an up to date version of Matlab (scanning the release notes I think R2019a or later for the particular syntax of min used here) this should work, although I don't have time to fully test it:
a = rand(17,1);
b = rand(300);
[~, idx] = min( abs( b - reshape( a, 1, 1,  ) ), , [1 2], 'linear' );
[row,col] = ind2sub( [300, 300], squeeze( idx ) );