矩阵乘法“ *”在MATLAB中有效,但在R中无效

时间:2018-07-23 18:56:14

标签: r matrix-multiplication

我正在尝试将5 x 3矩阵X与其在R中的转置tX相乘。

> X
     [,1] [,2] [,3]
[1,]    1   13  0.5
[2,]    1   23  0.4
[3,]    1    7 -0.2
[4,]    1   16  1.0
[5,]    1   11  0.3

> tX
     [,1] [,2] [,3] [,4] [,5]
[1,]  1.0  1.0  1.0    1  1.0
[2,] 13.0 23.0  7.0   16 11.0
[3,]  0.5  0.4 -0.2    1  0.3

> tX * X
Error in tX * X: array incompatibili

我在MATLAB中进行了此操作,并立即获得了正确的结果。为什么我不能在R中执行此操作?谢谢。

compute this in MATLAB

1 个答案:

答案 0 :(得分:4)

您需要tX %*% X。或尝试crossprod(X)。参见?"%*%"

实际上,如果您仅阅读信息,就会看到此信息。我是在两天前添加的。

"*"用于Hadamard乘积,即元素级乘积。由于tXX的维数不同,因此会出现错误。 (提示:我不知道您如何获得tX。在R中,函数t会转置矩阵。请参见信息。)


我已经十年没有使用MATLAB了。以下R2018a的文档看上去与我记得的文档不同。

无论如何,两种科学语言之间的语法都足够不同。