且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

由R中一个矩阵乘法在3D阵列中的每个矩阵片

更新时间: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