Я преподаю математику и программирование (с R) в университете, и я большой поклонник хорошей и последовательной системы обозначений. Пожалуйста, взгляните на следующие простые векторные операции в R:
> v1 <- c(1,2,3)
> v2 <- c(4,5,6)
> v1 %*% v2
[,1]
[1,] 32
> t(v1) %*% v2
[,1]
[1,] 32
> v1 %*% t(v2)
[,1] [,2] [,3]
[1,] 4 5 6
[2,] 8 10 12
[3,] 12 15 18
> t(v1) %*% t(v2)
Error in t(v1) %*% t(v2) : non-conformable arguments
> v1 + v2
[1] 5 7 9
> v1 + t(v2)
[,1] [,2] [,3]
[1,] 5 7 9
> t(v1) + t(v2)
[,1] [,2] [,3]
[1,] 5 7 9
Я думаю, что здесь есть некоторые несоответствия: либо я что-то упускаю, либо R кажется довольно произвольным в отношении того, какие результаты вы получаете, когда вы транспонируете вектор или нет.
Какова основная логика здесь (которая, кстати, кажется совершенно отличной от Matlab).
Matlab
? - person Dan   schedule 04.04.2014