我正在尝试将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中执行此操作?谢谢。
答案 0 :(得分:4)
您需要tX %*% X
。或尝试crossprod(X)
。参见?"%*%"
。
实际上,如果您仅阅读matrix-multiplication信息,就会看到此信息。我是在两天前添加的。
"*"
用于Hadamard乘积,即元素级乘积。由于tX
和X
的维数不同,因此会出现错误。 (提示:我不知道您如何获得tX
。在R中,函数t
会转置矩阵。请参见transpose信息。)
我已经十年没有使用MATLAB了。以下R2018a的文档看上去与我记得的文档不同。
无论如何,两种科学语言之间的语法都足够不同。