두 개의 객체 목록이 있습니다. 주어진리스트 2 오브젝트에 대해 현재리스트 1 오브젝트의 경계 내에있는 경우에만 조작을 수행하려고합니다. 이 같은거리 비교에서 중첩 된 for 루프를 피하십시오.
뭔가 :
이 뭐가 잘못for k=1:size(object_list1)
for l=1:size(object_list2)
if euclideanDstSqt(object_list1(k).centroid,object_list2(l).centroid) < toleranceRadius then
// do something ...
end
end
end
, 심지어 아주 멀리 서로있는 개체를 들어, 거리마다 시간을 확인하는 것입니다. 알고리즘 적으로 더 똑똑한 방법이 있습니까? 어쩌면 어떤 종류의 나무일까요?
이 알고리즘은 C++로 변환 될 수 있습니다. 따라서 모든 매트릭스 지향 Matlab 트릭을 잊어 버려야합니다.
k-d 트리는 매우 흥미로운 알고리즘입니다. 비커에게 감사드립니다. 나는 또한 제곱근을 취하는 대신에 2 차 유클리드 거리를 사용할 것이다. – CTZStef
잘 작동합니다. – beaker