将一个3d数组中的每个矩阵切片乘以R中的单个矩阵

时间:2015-03-10 17:41:43

标签: arrays r matrix linear-algebra

假设我有一个1 x矩阵mat=matrix(1,1,13)

我还有一个13 x 1000 x 10的数组。

dfarray = array(1:(13*1000*10),dim=c(13,1000,10))

没有循环,我想返回此循环的结果

dfarray2=array(NA,dim=c(1,1000,10))

for(i in 1:10){

dfarray2[,,i]=mat%*%dfarray[,,i]


}

1 个答案:

答案 0 :(得分:4)

一种可能性:将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