logo

Matrixmultiplikation in R

Die Matrixmultiplikation ist die nützlichste Matrixoperation. Heutzutage wird es häufig in Bereichen wie der Netzwerktheorie, der Koordinatentransformation und vielen weiteren Anwendungen eingesetzt. Eine Matrix in R kann mit erstellt werden Matrix() Funktion und diese Funktion verwendet den Eingabevektor, nrow, ncol, byrow, dimnames als Argumente.

Erstellen einer Matrix
Eine Matrix kann mit der Funktion „matrix()“ erstellt werden.



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

Ausgabe:

Sortieren einer Arrayliste Java
 [,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 2 4 6 8>

Multiplikation von Matrizen


Der Multiplikationsoperator * wird zum Multiplizieren einer Matrix durch Skalar- oder elementweise Multiplikation zweier Matrizen verwendet.
Multiplikation mit Skalar
Wenn Sie eine Matrix mit einem Skalarwert multiplizieren, wird jedes Element der Matrix mit diesem Skalar multipliziert.

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

Ausgabe:



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

Im obigen Code wird der Skalar mit jedem Element der Originalmatrix multipliziert. Auf diese Weise findet der Multiplikationsprozess statt.

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 zwischen Matrizen

Bei der Multiplikation einer Matrix mit einer anderen Matrix erfolgt die elementweise Multiplikation zweier Matrizen. Alle entsprechenden Elemente beider Matrizen werden unter der Bedingung multipliziert, dass beide Matrizen die gleiche Dimension haben.

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

Ausgabe:



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

So findet der Multiplikationsprozess statt.

Java int zu verdoppeln
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 mit Vektor

Wenn eine Matrix mit einem Vektor multipliziert wird, wird der Vektor entweder zur Zeilen- oder Spaltenmatrix hochgestuft, um zwei Argumente konform zu machen.

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

Ausgabe:

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

So läuft der Multiplikationsprozess ab:

  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 mit dem %*%-Operator

Der Betreiber %*% wird für die Matrixmultiplikation verwendet und erfüllt die Bedingung, dass die Anzahl der Spalten in der ersten Matrix gleich der Anzahl der Zeilen in der zweiten ist. Wenn Matrix A[M, N] und Matrix B[N, Z] multipliziert werden, hat die resultierende Matrix die 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)>

Ausgabe:

Vorwärtsverkettung
 [,1] [,2] [1,] 162 226 [2,] 200 280>

So findet die Multiplikation statt

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>