Ответ 1
Если вам по существу нужна сумма продуктов, тогда вам нужно всего sum(a*a)
Это мой код:
a <-c(1,2,3)
b <-t(a)
print(a*b)
Я ожидаю, что результат будет равным 14, так как вектор столбца, умноженный на вектор строки с подходящими размерами, должен быть скаларом.
Однако я получаю:
print (a * t (a))
[,1] [,2] [,3]
[1,] 1 4 9
Следовательно, частичные суммы вместо целой суммы. Как я могу это исправить?
Если вам по существу нужна сумма продуктов, тогда вам нужно всего sum(a*a)
Две проблемы, умножение в неправильном порядке и неправильная функция умножения.
> print(t(a)%*%a)
[,1]
[1,] 14
Эквивалентное:
> a=matrix(c(1,2,3),ncol=3)
> print (a %*% t(a))
[,1]
[1,] 14
Здесь a
- это матрица из 1 строки, трех столбцов.
См. ?"%*%"
и ?"*"
просто выполните это
a <-c(1,2,3)
> b<-t(a)
> b
> t(b)
затем
сумма (а * т (б)) [1] 14
Вы можете просто сделать это,
> a <-c(1,2,3)
> b <-t(a)
> b %*% a
Здесь %*%
действует как матричный продукт.