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

Arrays 将3d数组中的每个矩阵切片乘以R中的单个矩阵,arrays,r,matrix,linear-algebra,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(131000,10)) 没有循环,我想返回这个循环的结果 dfarray2=array(NA,dim=c(1,1000,10)) for(i in 1:10){ dfarray2[,,i]=mat%*%dfarray[,,i] } 一种可能性是:将dfarray变形为通常的矩阵,相乘并变换回3d数组 mat &l

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

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

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

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

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

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

mat您可能需要尝试
tensor
包。
mat%*%dfarray[,i]:不一致参数中的错误
。是不是
t(mat)
?Neal我知道没有必要使用张量包,因为左矩阵是相同的,但是谢谢!您可能希望尝试使用
张量
包。
mat%*%dfarray[,i]:不一致参数中的错误
。是不是
t(mat)
?Neal我知道没有必要使用张量包,因为左矩阵是相同的,但是谢谢!