Tengo un conjunto de puntos (x, y) en un plano 2d. Dado un punto (x0, y0) y el número k, cómo encontrar el k-ésimo vecino más cercano de (x0, x0) en el conjunto de puntos. En detalle, el conjunto de puntos está representado por dos matrices: x e y. El punto (x0, y0) viene dado por el índice i0. Significa x0 = x (i0) y y0 = y (i0).cómo encontrar k-ésimo vecino más cercano de un punto en un conjunto de punto
¿Hay alguna función o algo en Matlab me ayuda este problema. Si Matlab no tiene ese tipo de función, puede sugerir otras formas efectivas.
EDIT: Tengo que calcular este tipo de distancia para cada punto (x0, y0) en el conjunto. El tamaño del conjunto es aproximadamente 1000. El valor de k debe ser aproximadamente sqrt (1500). Lo peor es que hago esto muchas veces. En cada iteración, el conjunto cambia y vuelvo a calcular las distancias. Entonces, el tiempo de ejecución es un problema crítico.
Sí. Haré esto por cada punto del conjunto. Por lo tanto, algún tipo de tabla de distancia ayudaría a ahorrar el tiempo de ejecución. Descubriré cómo funciona la forma cuadrada en mi problema. Muchas gracias. –
la función es pdist en realidad, squareform simplemente hace una matriz cuadrada de salida de vector de pdist – zamazalotta
gracias zamazalotta. Entiendo. –