Я пытаюсь умножить матрицу 5 x 3X на ее транспонированный tX в R.
> 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? Спасибо.





Вам нужен tX %*% X. Или попробуйте crossprod(X). См. ?"%*%".
На самом деле, если вы просто прочитаете информацию матричное умножение, вы увидите это. Я добавил его два дня назад.
"*" используется для произведения Адамара, то есть поэлементного произведения. Поскольку tX и X имеют разные размеры, вы получите ошибку. (Подсказка: я не знаю, как получить tX. В R функция t транспонирует матрицу. См. Информацию о транспонировать.)
Я не использовал MATLAB 10 лет. Следующие документы для R2018a выглядят иначе, чем я помню.
Как бы то ни было, синтаксис двух научных языков достаточно разный.