Как рассчитать расстояние между массивом и матрицей - PullRequest
0 голосов
/ 22 мая 2019

Рассмотрим матрицу A и массив b. Я хотел бы рассчитать расстояние между b и каждой строкой A. Например, рассмотрим следующие данные:

A <- matrix(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15), 3, 5, byrow=TRUE)
b <- c(1, 2, 3, 4, 5)

Я бы ожидал в качестве вывода некоторый массив вида:

distance_array = c(0, 11.18, 22.36)

, где значение 11.18 исходит из евклидова расстояния между a[2,] и b:

sqrt(sum((a[2,]-b)^2))

Это кажется довольно простым, но до сих пор все найденные мной R-функции позволяют вычислять матрицы расстояний между всеми парами строк матрицы, но не это вычисление матрицы-матрицы.

1 Ответ

1 голос
/ 22 мая 2019

Я бы порекомендовал поместить строки A в список вместо матрицы, так как это может ускорить обработку.Но вот как бы я это сделал в отношении вашего примера

A <- matrix(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15), 3, 5, byrow=TRUE)

b <- c(1, 2, 3, 4, 5)

apply(A,1,function(x)sqrt(sum((x-b)^2)))
...