【问题标题】:multiplying two lists of matrices in continuos form以连续形式将两个矩阵列表相乘
【发布时间】:2019-04-11 05:10:59
【问题描述】:

我有两个矩阵列表,我想将第一个列表的第一个元素与第二个列表的第一个元素相乘,依此类推,因为每个列表上可能有大量元素(两个列表的长度相同)

这就是我的意思

'(colSums(R1*t(M1))),(colSums(R2*t(M2))),...(colSums(Rn*t(Mn)))'

我需要创建一个额外的列表吗? 尽管首先我必须能够在将其中一个列表的矩阵相乘之前对其进行转置。结果将用于更简单的操作。

我已经尝试过使用索引和循环但不起作用, 首先尝试像这样在一个列表中转置矩阵(M 是列表之一,另一个命名为 R,M 包含 M1、M2、..Mn 和列表 R 相同)

完整的操作如下所示:

'for (i in 1:length(M)){Mt<-list(t(M[[i]]))}'

并且仅将其应用于最后一个元素。

完整的操作如下:

 '(cbind((colSums(R1*t(M1))),(colSums(R2*t(M2))),...(colSums(Rn*t(Mn))))'

这些步骤中的任何一步都会很有用

【问题讨论】:

    标签: r


    【解决方案1】:

    你可以使用 rlist 包。

    功能

    list.apply(.data, .fun, ...)
    

    将对每个列表元素应用一个函数。

    您可以在 [https://cran.r-project.org/web/packages/rlist/rlist.pdf][1] 找到文档。

    【讨论】:

    • 你能举个例子吗?
    猜你喜欢
    • 2017-04-04
    • 2015-04-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多