Mam zestaw punktu (x, y) na płaszczyźnie 2d. Biorąc pod uwagę punkt (x0, y0) i liczbę k, jak znaleźć k-tego najbliższego sąsiada (x0, x0) w zestawie punktów. Szczegółowo, zestaw punktów jest reprezentowany przez dwie tablice: x i y. Punkt (x0, y0) jest podany przez indeks i0. Oznacza to x0 = x (i0) i y0 = y (i0).jak znaleźć k-najbliższego sąsiada punktu w zestawie punktu
Czy istnieje jakaś funkcja lub coś w Matlab pomaga mi ten problem. Jeśli Matlab nie ma takiej funkcji, możesz zaproponować inne skuteczne sposoby.
EDIT: Muszę obliczyć ten rodzaj odległości dla każdego punktu (x0, y0) w zbiorze. Rozmiar zestawu wynosi około 1000. Wartość k powinna wynosić około sqrt (1500). Najgorsze jest to, że robię to wiele razy. Przy każdej iteracji zestaw ulega zmianie i ponownie obliczam odległości. Tak więc czas pracy jest krytycznym problemem.
Tak. Zrobię to dla każdego punktu w secie. Tak więc pewien rodzaj tabeli odległości pomógłby zaoszczędzić czas pracy. Dowiesz się, jak działa funkcja kwadratów w moim problemie. Dziękuję Ci bardzo. –
funkcja jest w rzeczywistości pdist, to tylko kwadratowa matryca z wyjściowego wektora pdisty – zamazalotta
dzięki zamazalotta. Mam to. –