У меня есть 300-400 списков элементов, которые, в свою очередь, представляют собой список из 2 (координаты X и Y), например:
- Список A (4 элемента): 1X 1Y, 2X2Y, 3X 3Y, 4X 4Y
- Список B (6 элементов): 1X 1Y, 2X 2Y, 3X 3Y, 4X 4Y, 5X 5Y, 6X 6Y
- Список C (3 элемента):1X 1Y, 2X 2Y, 3X 3Y
- Список n (300-400)
Дополнительно, у меня есть специальный калькулятор расстояния от любой точки до другой, который получает элементы (сКоординаты X и Y) и вычисляет реальное расстояние в метрах.
Я хочу составить матрицу расстояний A, B, C, чтобы создать несколько кластеров из наиболее похожих списков, например:
- ___ A ___ B ___ C
- A
- B__7
- C__9 ___ 4
Чтобы вычислить значения, я сравнил все элементы каждого списка друг с другом (используя мойпользовательский калькулятор расстояния), а затем я взял сумму минимального расстояния для каждого элемента кратчайшего списка. Пример с A & B (4 элемента A против 6 элементов B):
- ___ 1 ___ 2 ___ 3 ___ 4
- 1__5 ___ 1 ___ 4 ___ 7
- 2__3 ___ 3 ___1036 * 2 ___ 4
- 3 __ 1 ___ 4 ___ 6 ___ 3
- 4__3 ___ 8 ___ 3 ___ 5
- 5__4 ___ 1 ___ 4 ___ 6
- 6__2 ___ 3 ___ 5 ___ 8
В этом случае я добавляю 1 + 1 + 2 + 3 = 7 как минимальное расстояние между A & B.
Пока этоработая, основная проблема состоит в том, чтобы построить все эти вычисления, используя вложенные циклы for-next, которые требуют много вычислительного времени (подумайте о 300-400 списках, содержащих до 20 элементов каждый).
Знаете ли выБолее простой способ работы с ним?
Спасибо и всего наилучшего.