How to find the nearest matrix between two matrices?
3 views (last 30 days)
Find the nearest row matching between matrix.
I have a matrix
A = [2013 03 17 1 6 0]; % 1x6 double
I have another matrix
B = [2013 3 17 0 5 1.012; 2013 3 17 1 6 20.47]; % 4x6 double
I want to find the index of the nearest matrix A in B.
Can anyone please help?
Any help will be greatly appriciated.
Rik on 18 Jul 2022
Convert each row to a date format (either datetime or datenum).
After that you can subtract one from the other, use abs and min to find the smallest difference. Use the second output of min to find the index of the smallest difference.
More Answers (1)
Abderrahim. B on 18 Jul 2022
Edited: Abderrahim. B on 18 Jul 2022
A = [2013,3,17,1,6,0]; % 1x6 double
B = [2013,3,17,0,5,1.012; 2013,3,17,1,6,20.47]; % 4x6 double
A = datetime(A) ;
B = datetime(B) ;
minSize_B = max(size(B)) ;
nearestAB =  ;
for ii = 1:minSize_B
nearestAB = [nearestAB abs(A - B(ii))] ;
[~, nearestB_indx] = min(nearestAB) % Means, the 4th row in B
nearestB = B(nearestB_indx)