logo

Матричне множення в R

Матричне множення є найкориснішою матричною операцією. Він широко використовується в таких сферах, як теорія мереж, перетворення координат і багато інших застосувань в наш час. Матрицю в R можна створити за допомогою матриця() і ця функція приймає вектор введення, nrow, ncol, byrow, dimnames як аргументи.

Створення матриці
Матрицю можна створити за допомогою функції matrix().



Р
# R program to create a matrix m <- matrix(1:8, nrow=2) print(m)>

Вихід:

 [,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 2 4 6 8>

Множення матриць


Оператор множення * використовується для множення матриці на скалярне або поелементне множення двох матриць.
Множення на скаляр
Якщо ви помножите матрицю на скалярне значення, то кожен елемент матриці буде помножено на цей скаляр.

Р
# R program for matrix multiplication # with a scalar m <- matrix(1:8, nrow=2) m <- 2*m print(m)>

Вихід:



 [,1] [,2] [,3] [,4] [1,] 2 6 10 14 [2,] 4 8 12 16>

У наведеному вище коді скаляр множиться на кожен елемент вихідної матриці. Так відбувається процес множення.

fcfs
2*1=2 2*3=6 2*5=10 2*7=14 2*2=4 2*4=8 2*6=12 2*8=16>

Множення між матрицями

Коли матриця множиться на іншу матрицю, відбувається поелементне множення двох матриць. Усі відповідні елементи обох матриць будуть перемножені за умови, що обидві матриці будуть однакової розмірності.

Р
# R program for matrix multiplication # Creating matrices m <- matrix(1:8, nrow=2) n <- matrix(8:15, nrow=2) # Multiplying matrices print(m*n)>

Вихід:



містить метод java
 [,1] [,2] [,3] [,4] [1,] 8 30 60 98 [2,] 18 44 78 120>

Так відбувається процес множення.

1*8=8 3*10=30 5*12=60 7*14=98 2*9=18 4*11=44 6*13=78 8*15=120>

Множення з вектором

Якщо матрицю помножити на вектор, вектор буде підвищено до матриці рядків або стовпців, щоб зробити два аргументи узгодженими.

Р
# R program for matrix multiplication # Creating matrix m <- matrix(1:8, nrow=2) # Creating a vector vec <- 1:2 # Multiplying matrix with vector print(vec*m)>

Вихід:

 [,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 4 8 12 16>

Ось як відбувається процес множення:

  1*1=1 1*3=3 1*5=5 1*7=7 2*2=4 2*4=8 2*6=12 2*8=16>

Множення за допомогою оператора %*%.

Оператор %*% використовується для множення матриці, яка задовольняє умову, що кількість стовпців у першій матриці дорівнює кількості рядків у другій. Якщо матрицю A[M, N] і матрицю B[N, Z] помножити, то результуюча матриця матиме розмірність M*Z.

Р
# R program for matrix multiplication # Creating matrices m <- matrix(1:8, nrow=2) n <- matrix(8:15, nrow=4) # Multiplying matrices using operator print(m %*% n)>

Вихід:

 [,1] [,2] [1,] 162 226 [2,] 200 280>

Так відбувається множення

1*8+3*9+5*10+7*11 = 162 1*12+3*13+5*14+7*15=226 2*8+4*9+6*10+8*11 = 200 2*12+4*13+6*14+8*15=280>