高效计算R中两个3D阵列的叉积和

高效计算R中两个3D阵列的叉积和,r,rcpp,cross-product,rcpparmadillo,R,Rcpp,Cross Product,Rcpparmadillo,例如,对于R中的两个3D阵列 N <- 1000 x <- rnorm(N*3*3); dim(x) <- c(N,3,3) y <- rnorm(N*3*3); dim(y) <- c(N,3,3) N如果你用数学方法重写你的问题,你可以证明它等价于: dim(x) <- c(3 * N, 3) dim(y) <- c(3 * N, 3) gg2 <- crossprod(x, y) dim(x)这篇文章中使用Rcpp实现了矩阵乘法谢

例如,对于R中的两个3D阵列

N <- 1000
x <- rnorm(N*3*3);   dim(x) <- c(N,3,3)
y <- rnorm(N*3*3);   dim(y) <- c(N,3,3)

N如果你用数学方法重写你的问题,你可以证明它等价于:

dim(x) <- c(3 * N, 3)
dim(y) <- c(3 * N, 3)
gg2 <- crossprod(x, y)

dim(x)这篇文章中使用Rcpp实现了矩阵乘法谢谢你的评论!我已经编写了rcpp并针对loop进行了测试,但它比loop慢2倍。。。根据我的测试,我认为F.Privé下面的解决方案是最快的。非常感谢!它比我电脑上的loop快12倍!
dim(x) <- c(3 * N, 3)
dim(y) <- c(3 * N, 3)
gg2 <- crossprod(x, y)