logo

Násobenie matice v R

Násobenie matice je najužitočnejšia maticová operácia. V súčasnosti je široko používaný v oblastiach ako je teória sietí, transformácia súradníc a mnoho ďalších použití. Maticu v R je možné vytvoriť pomocou matica() a táto funkcia berie ako argumenty vstupný vektor, nrow, ncol, byrow, dimnames.

Vytvorenie matice
Maticu je možné vytvoriť pomocou funkcie matrix().



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

Výkon:

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

Násobenie matíc


Operátor násobenia * sa používa na násobenie matice skalárnym alebo prvkovým násobením dvoch matíc.
Násobenie skalárom
Ak vynásobíte maticu skalárnou hodnotou, potom sa každý prvok matice vynásobí touto skalárnou hodnotou.

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

Výkon:



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

Vo vyššie uvedenom kóde sa skalár násobí každým prvkom pôvodnej matice. Takto prebieha proces násobenia.

hashmap v jave
2*1=2 2*3=6 2*5=10 2*7=14 2*2=4 2*4=8 2*6=12 2*8=16>

Násobenie medzi maticami

Keď sa matica vynásobí inou maticou, uskutoční sa násobenie dvoch matíc po prvkoch. Všetky zodpovedajúce prvky oboch matíc sa vynásobia za podmienky, že obe matice budú mať rovnaký rozmer.

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

Výkon:



 [,1] [,2] [,3] [,4] [1,] 8 30 60 98 [2,] 18 44 78 120>

Takto prebieha proces násobenia.

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

Násobenie s vektorom

Ak sa matica vynásobí vektorom, vektor bude povýšený buď na riadkovú alebo stĺpcovú maticu, aby boli dva argumenty prispôsobené.

R
# 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)>

Výkon:

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

Takto prebieha proces násobenia:

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

Násobenie pomocou operátora %*%.

Prevádzkovateľ %*% sa používa na násobenie matice pri splnení podmienky, že počet stĺpcov v prvej matici sa rovná počtu riadkov v druhej matici. Ak sa matica A[M, N] a matica B[N, Z] vynásobia, výsledná matica bude mať rozmer M*Z.

R
# 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)>

Výkon:

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

Takto prebieha násobenie

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>