【发布时间】:2017-10-29 02:22:53
【问题描述】:
我有 2 个矩阵 M1、M2。对于 M1 中的每一行,我想找到 M1 中该行和 M2 中每一行的乘积的最大值。
我已经尝试了以下实现,它产生了我想要的结果。
set.seed(1)
st_time = Sys.time()
M1 = matrix(runif(1000*10), nrow=1000, ncol=10)
M2 = matrix(runif(10000*10), nrow=10000, ncol=10)
score = apply(M1, 1, function(x){
w = M2 %*% diag(x)
row_max = apply(w, 1, max)
return(row_max)
})
required_output = t(score)
Sys.time() - st_time
这在我的机器上需要 16 秒。有更快的实现吗? 谢谢!
【问题讨论】:
标签: r performance matrix linear-algebra