将 3d 数组中的每个矩阵切片乘以 R 中的单个矩阵
multiply each matrix slice in a 3d array by a single matrix in R
假设我有一个 1 x 矩阵 mat=matrix(1,1,13)
我还有一个 13 x 1000 x 10 的数组。
dfarray = array(1:(13*1000*10),dim=c(13,1000,10))
不循环,我想return这个循环的结果
dfarray2=array(NA,dim=c(1,1000,10))
for(i in 1:10){
dfarray2[,,i]=mat%*%dfarray[,,i]
}
一种可能性:将 dfarray
变形为普通矩阵,相乘并转换回 3d 数组。
mat <- matrix(1, 1, 13)
dim(dfarray) <- c(13, 1000*10)
dfarray1 <- mat %*% dfarray
dim(dfarray1) <- c(1, 1000, 10)
all(dfarray1==dfarray2)
[1] TRUE
假设我有一个 1 x 矩阵 mat=matrix(1,1,13)
我还有一个 13 x 1000 x 10 的数组。
dfarray = array(1:(13*1000*10),dim=c(13,1000,10))
不循环,我想return这个循环的结果
dfarray2=array(NA,dim=c(1,1000,10))
for(i in 1:10){
dfarray2[,,i]=mat%*%dfarray[,,i]
}
一种可能性:将 dfarray
变形为普通矩阵,相乘并转换回 3d 数组。
mat <- matrix(1, 1, 13)
dim(dfarray) <- c(13, 1000*10)
dfarray1 <- mat %*% dfarray
dim(dfarray1) <- c(1, 1000, 10)
all(dfarray1==dfarray2)
[1] TRUE