我有以下两次加法运算:
我想用R语言编写代码。
下面我介绍我的解决方案。首先,我选择将x,y和z存储为随机数组或矩阵。
m<-5
n<-7
x<-runif(n)
y<-matrix(runif(n*m), ncol=m)
z<-runif(m)
我已经使用double for循环来执行两次求和。
ans <- 0
for (i in 1:n){
for (j in 1:m){
ans <- ans + x[i]*y[i,j]*z[j]
}
}
我想加快这段代码的速度,删除double for循环。有什么建议吗?
答案 0 :(得分:4)
这只是矩阵的乘法:
t(x) %*% y %*% z
执行c(t(x) %*% y %*% z)
以获得数字而不是1 x 1
矩阵。