distance of points to points calculation

조회 수: 1 (최근 30일)
Yu Li
Yu Li 2018년 7월 11일
답변: Anton Semechko 2018년 7월 11일
Hi: I have two set of 2D scatter points, says A and B, I need the minimun value of each points in A to B. for example, the size of A and B are 100*2, and below are my codes:
for i=1:1:100
ppdist=((A(j,1)-B(:,1)).^2+(A(j,2)-B(:,2)).^2).^0.5;
result(i)=min(ppdist);
end
however, if the size of A and B are significantly large, for example: 1 million for each, the calculation cost significantly large amount of time.
so I want know if there is anyway to optimize this calculation?
Thanks Yu

채택된 답변

Anton Semechko
Anton Semechko 2018년 7월 11일
Use 'knnsearch' function. For example:
[idxA,D_a2b]=knnsearch(B,A,'k',1);
will return indices of the points in set A closest to B, so that A(idxA(j),:) is the closest point to B(j,:). D_a2b(j) is the distance between these closest point pairs.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Statistics and Machine Learning Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by