更新时间:2022-10-28 09:52:26
一种可能性:变形 dfarray
通常的矩阵乘法和转换回3D阵列。
垫< - 矩阵(1,1,13)
暗淡(dfarray)LT; - C(13,1000 * 10)
dfarray1< - 垫%*%dfarray
暗淡(dfarray1)LT; - C(1,1000,10)
所有(dfarray1 == dfarray2)
[1] TRUE
Suppose I have a 1 x matrix mat=matrix(1,1,13)
I also have an array that is 13 x 1000 x 10.
dfarray = array(1:(13*1000*10),dim=c(13,1000,10))
Without looping, I want to return the results of this loop
dfarray2=array(NA,dim=c(1,1000,10))
for(i in 1:10){
dfarray2[,,i]=mat%*%dfarray[,,i]
}
One possibility: deform the dfarray
to usual matrix, multiply and transform back to 3d array.
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