Добро пожаловать!Matlab - поиск ближайшего соседа в трехмерной системе координат
У меня есть набор п Matlab матрицы со следующей структурой:
xyz_1 -3,37200000000000 2,80000000000000 5,03400000000000
xyz_2 -2,21700000000000 1,74500000000000 7,45300000000000
.... .................. ................ ................
xyz_n -1,39300000000000 0,00700000000000000 6,35500000000000
где первый столбец является имя матрицы, а следующие три столбца являются XYZ координаты. Я ищу эффективный способ найти ближайшего соседа. Я хотел бы дать название матрицы и К потенциальным соседям в качестве входного параметра, то программа будет найти ближайшие сосед, давая мне матрицу результата в следующем виде:
[nearest_neighbor_name_1; distance_between_quoted_element_and_nearest_neigbor_1
nearest_neighbor_name_2; distance_between_quoted_element_and_nearest_neigbor_2
nearest_neighbor_name_....; distance_between_quoted_element_and_nearest_neigbor_....
nearest_neighbor_name_k; distance_between_quoted_element_and_nearest_neigbor_k]
Я пытался использовать knnsearch
, к сожалению, без эффекта. Спасибо за помощь!
Пожалуйста, переформатируйте вопрос, используя \ 'для сегментов кода. Также: Что вы подразумеваете под: * Я пытался использовать 'knnsearch' без эффекта *? Почему этот подход неудовлетворительный? – knedlsepp
Я нашел описание, как искать двухмерные координаты. К сожалению, я понятия не имею, как использовать «knnseach» в случае трехмерной системы. Кроме того, входной параметр для 'knneseach' - это одиночные матрицы (X и Y), а не, как в моем случае, множество многоа массированных. – destrudos
Посмотрите на [этот пост] (http://stackoverflow.com/questions/27475978/finding-k-nearest-neighbour-with-matlab/27476929#27476929) для понимания. Убедитесь, что вы форматируете данные таким образом, чтобы каждая строка была точкой, а каждый столбец - переменной. – rayryeng