logo

Matrix multiplikation i R

Matrixmultiplikation er den mest nyttige matrixoperation. Det er meget udbredt inden for områder som netværksteori, transformation af koordinater og mange flere anvendelser i dag. En matrix i R kan oprettes vha matrix() funktion og denne funktion tager inputvektor, nrow, ncol, byrow, dimnames som argumenter.

java hovedmetode

Oprettelse af en matrix
En matrix kan oprettes ved hjælp af matrix()-funktionen.



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

Produktion:

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

Multiplikation af matricer


Multiplikationsoperatoren * bruges til at multiplicere en matrix ved skalar eller element-vis multiplikation af to matricer.
Multiplikation med skalar
Hvis du multiplicerer en matrix med en skalarværdi, vil hvert element i matrixen blive ganget med den skalar.

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

Produktion:



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

I ovenstående kode multipliceres skalaren med hvert element i den oprindelige matrix. Sådan foregår multiplikationsprocessen.

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

Multiplikation mellem matricer

Når en matrix multipliceres med en anden matrix, sker den grundstofvise multiplikation af to matricer. Alle de tilsvarende elementer i begge matricer vil blive multipliceret under den betingelse, at begge matricer har samme dimension.

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

Produktion:



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

Sådan foregår multiplikationsprocessen.

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

Multiplikation med vektor

Hvis en matrix multipliceres med en vektor, vil vektoren blive forfremmet til enten række- eller kolonnematrix for at gøre to argumenter kompatible.

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

Produktion:

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

Sådan foregår multiplikationsprocessen:

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

Multiplikation med %*% operator

Operatøren %*% bruges til matrixmultiplikation, der opfylder betingelsen om, at antallet af kolonner i den første matrix er lig med antallet af rækker i den anden. Hvis matrix A[M, N] og matrix B[N, Z] multipliceres, vil den resulterende matrix have dimension 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)>

Produktion:

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

Sådan foregår multiplikation

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>