行列とベクトルがあるとします:
set.seed(999)
mat = matrix(round(rnorm(24,4,9)),3,8)
mat
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 1 6 -13 -6 12 -8 12 10
[2,] -8 2 -7 16 6 5 -15 1
[3,] 11 -1 -5 5 13 5 -7 7
vec = c(1,5, 4,4, 2,1, 4,8)
ここで、 の各行について、その行と の2 つの要素を「グループ」として持つmat
の間の距離を計算したいと考えています。vec
たとえば、私はしたいです
d11 = |mat[1,1:2] - vec[1:2]|
d12 = |mat[1,3:4] - vec[3:4]|
d13 = |mat[1,5:6] - vec[5:6]|
d14 = |mat[1,7:8] - vec[7:8]|
の残りの行mat
(つまり、行 2 と 3) に対しても同じことが行われますd21,...,d24, d31,...,d34
。
このタスクが for ループを使用せずに実行できることを願っています。この目的のために直接使用できる機能はありますか? ありがとう!