【问题标题】:r: %*% and lapply/mapply when arguments are reversedr: %*% 和 lapply/mapply 当参数反转时
【发布时间】:2016-05-29 23:33:19
【问题描述】:

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

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

我想要A 的叉积列表和B 的每个元素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...

谁能给我一些建议?

【问题讨论】:

    标签: r matrix matrix-multiplication


    【解决方案1】:

    只需在lapply() 中定义您的function,就像这样

    lapply(B, function(x) A%*%x)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 2021-09-25
      • 1970-01-01
      • 2020-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多