如果我有数组A

A <- array(0, c(4, 3, 5))
for(i in 1:5) {
  set.seed(i)
  A[, , i] <- matrix(rnorm(12), 4, 3)
}

如果我有矩阵B
set.seed(6)
B <- matrix(rnorm(12), 4, 3)

从数组A的每个矩阵中减去B的代码为:
d<-array(0, c(4,3,5))
for(i in 1:5){
  d[,,i]<-A[,,i]-B
}

但是,使用“apply”系列中的函数执行相同计算的代码是什么?

最佳答案

这就是sweep的用途。

sweep(A, 1:2, B)

关于arrays - 从n,k维矩阵中减去n,k维矩阵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17325881/

10-17 00:51