dist ведет себя по-разному в gpuMatrix, как получить тот же результат? - PullRequest
0 голосов
/ 16 декабря 2018

Я пытаюсь оптимизировать вычисление евклидова расстояния между набором точек, когда пробегаю dist по простой матрице, с x в первом столбце и y во втором, например:

m <- matrix(c(3,4,5,6,7,1,2,3,4,5,6) , ncol=2)

     [,1] [,2]
[1,]    3    1
[2,]    4    2
[3,]    5    3
[4,]    6    4
[5,]    7    5

Я получаюследующий результат:

dist(m)
         1        2        3        4
2 1.414214                           
3 2.828427 1.414214                  
4 4.242641 2.828427 1.414214         
5 5.656854 4.242641 2.828427 1.414214

Меня особенно интересует первый столбец, который имеет расстояние каждой точки до следующей точки.Однако, если я использую пакет gpuR и преобразую эту матрицу в gpuMatrix, результат будет совершенно другим, и я не знаю, как его интерпретировать, может кто-нибудь объяснить или указать мне правильное направление, я не могу найти полезную документацию по этому вопросу.функция для этой библиотеки или примеров:

m2 <- gpuMatrix(m)
dist(m2)[]
         [,1]     [,2] [,3] [,4] [,5]
[1,] 0.000000 1.414214    0    0    0
[2,] 1.414214 0.000000    0    0    0
[3,]      NaN      NaN    0    0    0
[4,] 2.828427      NaN    0    0    0
[5,] 4.690416      NaN    0    0    0
...