Подтвердить что ты не робот

Оператор R% *%

Что это? Я не могу найти помощь, используя ?. (Извините за тупость)

> 1%*%1
     [,1]
[1,]    1
> 10%*%10
     [,1]
[1,]  100
> c(1:2)%*%c(1:2)
     [,1]
[1,]    5
4b9b3361

Ответ 1

Это оператор умножения матриц!

Из документации:

Описание:

Умножает две матрицы, если они совместимы. Если один аргумент является вектором, он будет преобразован в матрицу строк или столбцов, чтобы сделать эти два аргумента совместимыми. Если оба вектора имеют одинаковую длину, он вернет внутреннее произведение (в виде матрицы).

Использование:

x %*% y

Аргументы:

x, y числовые или комплексные матрицы или векторы

Ответ 2

> 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

Ответ 3

Я создал вопрос "Что такое расчет за оператором %*% в R?" который был отмечен как дубликат этого вопроса. Оператор %*% используется для умножения двух матриц. Я не осознавал, что "умножение матриц" является признанным алгебраическим методом, поэтому было полезно изучить базовые вычисления, еще не описанные здесь в других ответах. Передача полезных ссылок из комментариев в дублирующем вопросе

https://en.m.wikipedia.org/wiki/Matrix_multiplication#Definition

http://matrixmultiplication.xyz/

From Matrix Multiplication Wikipedia Page

Ответ 4

Этот оператор используется для умножения матрицы на ее транспонирование.

M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)

t = M %*% t(M)

print(t)

из учебных точек