2017-04-23 2 views
0

私は2つの行列を有する:2つの別々の行列の行に格納された2点間のユークリッド距離を計算する方法は?

matrixes with points

マトリックスは、追加式で展開されたときに、私はループを使用せずに、途中点で、点Xと点Yとの間の距離をカウントしたいです/機能は機能します。一つは使用することができ、検証のため

sqrt((m1[,1] - m2[,1])^2 + (m1[,2] - m2[,2])^2 + (m1[,3] - m2[,3])^2 + (m1[,4] - m2[,4])^2 + (m1[,5] - m2[,5])^2) 

上記式はXとYの間の距離の正確な結果を与える行列は、追加の列によって拡張されると、しかし発現はまた、拡大されなければならず、すなわち容認できない解決策です...

これを達成する方法はとても親切ですか?どんな助けも大歓迎です。私はしばらくの間、この1とこだわっている...マトリックスとの間

+2

はあなたを投稿しないでください。データを画像として、[再現可能な例]を与える方法を学んでください(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610) – Jaap

答えて

1

-がRに要素単位で、rowSumsが行に沿っての総和を計算するのに有用である:

m1 <- matrix(
    c(4, 3, 1, 6, 
     2, 4, 5, 7, 
     9, 0, 1, 2, 
     6, 7, 8, 9, 
     1, 6, 4, 3), 
    nrow = 4 
) 

m2 <- matrix(
    c(2, 6, 3, 2, 
     9, 4, 1, 4, 
     1, 3, 0, 1, 
     4, 5, 0, 2, 
     7, 2, 1, 3), 
    nrow = 4 
) 


sqrt((m1[,1] - m2[,1])^2 + (m1[,2] - m2[,2])^2 + (m1[,3] - m2[,3])^2 + (m1[,4] - m2[,4])^2 + (m1[,5] - m2[,5])^2) 
# [1] 12.529964 6.164414 9.695360 8.660254 

sqrt(rowSums((m1 - m2)^2)) 
# [1] 12.529964 6.164414 9.695360 8.660254 
+0

入手しました!どうもありがとうございます! – wounky

関連する問題