Что это? Я не могу найти помощь, используя ?
. (Извините за тупость)
> 1%*%1
[,1]
[1,] 1
> 10%*%10
[,1]
[1,] 100
> c(1:2)%*%c(1:2)
[,1]
[1,] 5
Что это? Я не могу найти помощь, используя ?
. (Извините за тупость)
> 1%*%1
[,1]
[1,] 1
> 10%*%10
[,1]
[1,] 100
> c(1:2)%*%c(1:2)
[,1]
[1,] 5
Это оператор умножения матриц!
Из документации:
Описание:
Умножает две матрицы, если они совместимы. Если один аргумент является вектором, он будет преобразован в матрицу строк или столбцов, чтобы сделать эти два аргумента совместимыми. Если оба вектора имеют одинаковую длину, он вернет внутреннее произведение (в виде матрицы).
Использование:
x %*% y
Аргументы:
x
,y
числовые или комплексные матрицы или векторы
> c(1,2,3) %*% c(4,5,6)
[,1]
[1,] 32
> c(1,2,3) * c(4,5,6)
[1] 4 10 18
Как и MadSeb, это оператор матричного умножения. Если вы дадите ему два вектора, он будет принуждать их к (логической) 1-строчной и 1-столбцовой матрице и умножать их.
Это также внутренний (или точечный) продукт между двумя векторами и находит широкое применение в линейной алгебре, вычислительной геометрии и множестве других приложений.
http://en.wikipedia.org/wiki/Dot_product
BTW, векторы должны находиться в одном и том же пространстве (одинаковое количество измерений)
> c(1,2,3) %*% c(4,5,6,7)
Error in c(1, 2, 3) %*% c(4, 5, 6, 7) : non-conformable arguments
Я создал вопрос "Что такое расчет за оператором %*%
в R?" который был отмечен как дубликат этого вопроса. Оператор %*%
используется для умножения двух матриц. Я не осознавал, что "умножение матриц" является признанным алгебраическим методом, поэтому было полезно изучить базовые вычисления, еще не описанные здесь в других ответах. Передача полезных ссылок из комментариев в дублирующем вопросе
https://en.m.wikipedia.org/wiki/Matrix_multiplication#Definition
Этот оператор используется для умножения матрицы на ее транспонирование.
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)
t = M %*% t(M)
print(t)