我正在尝试在R中实现嵌套求和。for循环实现是:
sum = 0
for(i in 1:n){
for(j in 1:n){
for(k in 1:n){
sum = sum + w[i,j]*w[j,k]
}
}
}
其中w
是对称方阵,n
是行(或列)数。
Please see the formula我正在尝试实施。 (所以不允许我写Latex或在此处添加图片。)
上面的for循环嵌套需要永远的时间。如何以R方式有效地实现这一点?
答案 0 :(得分:2)
尝试一下:
Sum2 <- sum(w %*% w)
all.equal(Sum, Sum2)
## [1] TRUE
我们用于比较:
# input
set.seed(123)
n <- 5
w <- matrix(rnorm(n^2), n)
# from question
Sum = 0
for(i in 1:n){
for(j in 1:n){
for(k in 1:n){
Sum = Sum + w[i,j]*w[j,k]
}
}
}