Просто поиск кратчайшего расстояния не так уж и сложен.
A = rand(1E4,2);
B = rand(1E4,2);
tic
idx = nan(1,1E4);
for ct = 1:size(A,1)
d = sum((A(ct,:)-B).^2,2);
idx(ct) = find(d==min(d));
end
toc
plot(A(1:10,1),A(1:10,2),'.r',B(idx(1:10),1),B(idx(1:10),2),'.b')
занимает пол секунды на моем ПК.
Проблемы могут начаться, если две точки в наборе A сопоставлены с одним и тем же местоположением в наборе B.
length(unique(idx))==length(idx)
Это можно решить несколькими способами.Наилучшим (imho) является определение вероятности того, что точка B совпадает с точкой A, на основе расстояния (обычно это экспоненциальное уменьшение) и решение для наиболее вероятной ситуации.
Более простой метод (но с большей ошибкой)склонен) - удалить согласованную точку из набора B.