以连续形式将两个矩阵列表相乘

时间:2019-04-11 05:11:00

标签: r

我有两个矩阵列表,我想将第一个列表的第一个元素与第二个列表的第一个元素相乘,依此类推,由于每个列表上可能有很多元素,所以不写每个运算符(两个列表的长度相同)

这就是我的意思

'(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))))'

其中任何一步都是有用的

1 个答案:

答案 0 :(得分:0)

您可以使用rlist软件包。

函数

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

将对每个列表元素应用一个功能。

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