簡體   English   中英

如何計算存儲在兩個單獨矩陣的行中的兩個點之間的歐幾里得距離?

[英]How to calculate Euclidian distance between two points stored in rows of two separate matrixes?

我有兩個矩陣:

點矩陣

我想在不使用循環的情況下計算點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之間距離的正確結果,但是一旦矩陣被其他列擴展,則表達式也必須擴展,這是不可接受的解決方案...

您會這​​么友善並告訴您如何實現這一目標嗎? 任何幫助都將受到歡迎。 我堅持了一段時間

-矩陣之間在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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM