Итак, у нас есть эталонный набор трехмерных точек (назовем его R) и многие другие наборы трехмерных точек (назовем этот набор наборов точек данных P и каждый набор данных в этом Pi).
Задача состоит в том, чтобы вернуть число Пи, которое минимизирует евклидово расстояние между точками данных в некоторых Пи и Р. Я вижу это так:
- Для каждой точки в Pi сравните с каждой точкой в R и найдите минимальную разницу между двумя точками.
- Суммируйте эти минимальные расстояния, чтобы получить минимальную общую «разницу» между Pi и R.
- Ответ Pi - это тот, у которого наименьшая разница.
Но это довольно безумие, поскольку это означает, по сути, смотреть на расстояние между каждой точкой в R и каждой точкой в P, которое может составлять тысячи или миллионы. Конечно, у меня получится лучше.
Я работаю в Matlab, к чему не привык.
Какой алгоритм лучше использовать? Есть ли структура данных, которая идеально подходит для этого? (например, дерево K-D?)