【发布时间】:2015-11-11 18:57:02
【问题描述】:
注意:我指的不是here 中的矩阵乘法 - 即使是在另一篇文章中讨论的转置的扭曲。
我有这两个矩阵...
矩阵A:
A <- matrix(c(1,1,1,-1,1,1,1,-1,1,-1,-1,1), ncol=4)
[,1] [,2] [,3] [,4]
[1,] 1 -1 1 -1
[2,] 1 1 -1 -1
[3,] 1 1 1 1
...和矩阵B:
B <- matrix(c(1,2,3,2,1,3,2,3,1), ncol=3)
[,1] [,2] [,3]
[1,] 1 2 2
[2,] 2 1 3
[3,] 3 3 1
我想得到 [R] 代码:
[,1] [,2] [,3]
[1,] 1*1 1*2 1*2
[2,] 1*2 1*1 1*3
[3,] 1*3 1*3 1*1
[,1] [,2] [,3]
[1,] -1*1 -1*2 -1*2
[2,] 1*2 1*1 1*3
[3,] 1*3 1*3 1*1
[,1] [,2] [,3]
[1,] 1*1 1*2 1*2
[2,] -1*2 -1*1 -1*3
[3,] 1*3 1*3 1*1
[,1] [,2] [,3]
[1,] -1*1 -1*2 -1*2
[2,] -1*2 -1*1 -1*3
[3,] 1*3 1*3 1*1
这不是线性代数乘法,因为在乘法的末尾没有和。它不是克罗内克产品。我曾尝试使用apply(A, 2, function(x) A * B,但它不起作用,因为虽然我可以指定我想要A 的列一次一个,但我不知道如何对B 的列执行相同操作.
我没有设置任何特定类型的对象(列表、矩阵、数组)作为输出。
问题是:如何将这两个矩阵按元素和按列相乘以得到另一个矩阵或“列表”对象或数组?
【问题讨论】: