当参数反转时,r:%*%和lapply / mapply

时间:2016-05-29 23:33:20

标签: r matrix matrix-multiplication

我一直想知道在列表上进行矩阵乘法的最有效方法。

假设我有一个矩阵A和一个list矩阵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))

我想要Ab的每个元素B的副产品列表:

A %*% b

我试图使用lapply()但是无法弄清楚如何确保正确的乘法序列而没有额外的嵌套lapply来转置每个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...

有人可以在这里给我一些指示吗?

1 个答案:

答案 0 :(得分:2)

只需在function内定义lapply(),就像这样

lapply(B, function(x) A%*%x)
相关问题