【发布时间】:2020-04-10 13:58:32
【问题描述】:
我模拟了三个矩阵,希望实现一个功能。
很难解释这个函数,但我认为 FOR LOOP 的以下代码很好,很容易解释我想做的事情。
A=matrix(1:10000,100,100)
B=matrix(2:10001,100,100)
C=matrix(3:10002,100,100)
for (i in 1:100) {
for (j in 1:100) {
print(min(C[B>A[i,j]]))
}
}
但是,实际上每个的矩阵会大得多,例如 1000 * 1000,导致 FOR LOOP 消耗大量时间。我在二维中尝试了 apply(),但根据 system.time(),它根本没有改善。
apply(A, 1:2, function(x) print(min(C[B>x])))
我想知道是否有任何方法可以优化这个函数,使其更快,或者简而言之,同时使用矩阵 A 的每个元素。
非常感谢提前!
【问题讨论】: