0
我試圖通過在R中的另一個矩陣中的每個對應行的每個行的矩陣多行。我可以用for循環來做到這一點,但它非常慢,我試圖用多個矩陣來做到這一點,每個矩陣都是180萬行。矩陣的每一行乘以另一個矩陣的同一行,而沒有在R中的循環
mat1 <- matrix(1:10, nrow=5, ncol=2)
mat2 <- matrix(1:5, nrow=5, ncol=2)
vect <- NA
for(i in 1:nrow(mat1)){
vect[i] <- sum(mat1[i, ] * t(mat2[i, ]))
}
vect
它也可以,如果我用的矩陣乘法與向量
for(i in 1:nrow(mat1)){
vect[i] <- mat1[i, ] %*% as.vector(t(mat2[i, ]))
}
我使用apply()
功能嘗試,但它通過mat1
各行設法多的mat2
每一行,我不能弄清楚如何在沒有for()
循環的情況下停止。
在這種情況下,速度和內存效率對我來說非常重要。理論上我可以使用dplyr
,因爲我從數據框中拉取mat1
和mat2
,並且可以將vect
作爲附加列附加。再次,我不知道如何快速做到這一點。