gpt4 book ai didi

r - 有效地计算 R 中两个 3D 数组的叉积和

转载 作者:行者123 更新时间:2023-12-04 11:31:13 27 4
gpt4 key购买 nike

例如,对于 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)

我可以通过循环执行以下交叉产品:
gg <- 0
for (n in 1:dim(x)[1]){
gg <- gg + t(x[n,,]) %*% y[n,,]
}

我的问题是,对于非常大的 rcpp,我们能否更有效地做到这一点(例如,通过矢量化或 N)而不是使用循环?

最佳答案

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

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

这应该非常快,并且不应进行任何复制。

关于r - 有效地计算 R 中两个 3D 数组的叉积和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55253553/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com