r:%*%和参数反转时的lappy/mappy
我一直想知道在列表上进行矩阵乘法的最有效的方法 假设我有一个矩阵r:%*%和参数反转时的lappy/mappy,r,matrix,matrix-multiplication,R,Matrix,Matrix Multiplication,我一直想知道在列表上进行矩阵乘法的最有效的方法 假设我有一个矩阵a和一个矩阵B的列表: A = matrix(c(1,2,3,4), ncol=2, nrow=2) B = list(matrix(c(1,2,3,4), ncol=2, nrow=2), matrix(c(4,3,2,1), ncol=2, nrow=2)) A %*% b 我想要A的交叉积列表和b的每个元素b: A = matrix(c(1,2,3,4), ncol=2, nrow=2) B = list(matrix(c
a
和一个矩阵B
的列表:
A = matrix(c(1,2,3,4), ncol=2, nrow=2)
B = list(matrix(c(1,2,3,4), ncol=2, nrow=2), matrix(c(4,3,2,1), ncol=2, nrow=2))
A %*% b
我想要A
的交叉积列表和b
的每个元素b
:
A = matrix(c(1,2,3,4), ncol=2, nrow=2)
B = list(matrix(c(1,2,3,4), ncol=2, nrow=2), matrix(c(4,3,2,1), ncol=2, nrow=2))
A %*% b
我试图使用lappy()
,但不知道如何确保正确的乘法顺序,而不使用额外的嵌套lappy
,来转置每个b
lapply(B, '%*%', A) # which gives a list of b%*%A rather than A%*%b
lapply(lapply(lapply(B, t), '%*%', t(A)), t) # gives the answer but geez...
有人能给我一些提示吗?只要在lappy()中定义函数就可以了
lapply(B, function(x) A%*%x)
只需在lappy()中定义函数
,如下所示
lapply(B, function(x) A%*%x)