Matrixvermenigvuldiging is de nuttigste matrixbewerking. Het wordt tegenwoordig veel gebruikt op gebieden zoals netwerktheorie, transformatie van coördinaten en nog veel meer toepassingen. Een matrix in R kan worden gemaakt met behulp van Matrix() functie en deze functie neemt invoervector, nrow, ncol, byrow, dimnames als argumenten.
Een matrix maken
Met de functie matrix() kan een matrix worden gemaakt.
R
# R program to create a matrix m <- matrix(1:8, nrow=2) print(m)>
Uitgang:
[,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 2 4 6 8>
Vermenigvuldiging van matrices
De vermenigvuldigingsoperator * wordt gebruikt voor het vermenigvuldigen van een matrix door scalaire of elementaire vermenigvuldiging van twee matrices.
Vermenigvuldiging met scalair
Als je een matrix met een scalaire waarde vermenigvuldigt, wordt elk element van de matrix met die scalaire waarde vermenigvuldigd.
# R program for matrix multiplication # with a scalar m <- matrix(1:8, nrow=2) m <- 2*m print(m)>
Uitgang:
[,1] [,2] [,3] [,4] [1,] 2 6 10 14 [2,] 4 8 12 16>
In de bovenstaande code wordt de scalair vermenigvuldigd met elk element van de oorspronkelijke matrix. Dit is hoe het vermenigvuldigingsproces plaatsvindt.
2*1=2 2*3=6 2*5=10 2*7=14 2*2=4 2*4=8 2*6=12 2*8=16>
Vermenigvuldiging tussen matrices
Wanneer een matrix wordt vermenigvuldigd met een andere matrix, vindt de elementaire vermenigvuldiging van twee matrices plaats. Alle overeenkomstige elementen van beide matrices zullen worden vermenigvuldigd onder de voorwaarde dat beide matrices dezelfde dimensie zullen hebben.
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)>
Uitgang:
[,1] [,2] [,3] [,4] [1,] 8 30 60 98 [2,] 18 44 78 120>
Dit is hoe het vermenigvuldigingsproces plaatsvindt.
1*8=8 3*10=30 5*12=60 7*14=98 2*9=18 4*11=44 6*13=78 8*15=120>
Vermenigvuldiging met Vector
Als een matrix wordt vermenigvuldigd met een vector, wordt de vector gepromoveerd tot een rij- of kolommatrix om twee argumenten conform te maken.
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)>
Uitgang:
[,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 4 8 12 16>
Dit is hoe het vermenigvuldigingsproces plaatsvindt:
1*1=1 1*3=3 1*5=5 1*7=7 2*2=4 2*4=8 2*6=12 2*8=16>
Vermenigvuldigen met de operator %*%
De exploitant %*% wordt gebruikt voor matrixvermenigvuldiging die voldoet aan de voorwaarde dat het aantal kolommen in de eerste matrix gelijk is aan het aantal rijen in de tweede. Als matrix A[M, N] en matrix B[N, Z] worden vermenigvuldigd, zal de resulterende matrix de afmeting M*Z hebben.
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)>
Uitgang:
[,1] [,2] [1,] 162 226 [2,] 200 280>
Dit is hoe vermenigvuldiging plaatsvindt
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>