R Matrix

Die Sprache R bietet Matrixtypen für die Forschung in der linearen Algebra. Diese Datenstruktur ist zweidimensionalen Arrays in anderen Sprachen sehr ähnlich, aber R bietet Unterstützung für Matrixoperationen auf Sprachebene.

Elemente in einer Matrix können Zahlen, Symbole oder mathematische Ausdrücke sein.

AM x NEine Matrix besteht ausM (Zeile) ZeilenundN (Spalte) SpaltenElementen, die in einem rechteckigen Array angeordnet sind.

Das Folgende ist eine Matrix mit 2 Zeilen und 3 Spalten, die aus 6 numerischen Elementen besteht:

Matrizen in der Sprache R können mit der Funktion matrix() erstellt werden. Die Syntax lautet wie folgt:

matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,dimnames = NULL)

Parameter description:

  • dataVektor, die Daten der Matrix

  • nrowAnzahl der Zeilen

  • ncolAnzahl der Spalten

  • byrowLogischer Wert. Wenn FALSE, nach Spalten anordnen; wenn TRUE, nach Zeilen anordnen

  • dimnameSetze die Namen von Zeilen und Spalten

Erstelle eine numerische Matrix:

Beispiel

# Wenn byrow TRUE ist, werden Elemente zeilenweise angeordnet
M <- matrix(c(3:14), nrow = 4, byrow = TRUE)
print(M)

# Wenn byrow FALSE ist, werden Elemente spaltenweise angeordnet
N <- matrix(c(3:14), nrow = 4, byrow = FALSE)
print(N)

# Definiere die Namen von Zeilen und Spalten
rownames = c("row1", "row2", "row3", "row4")
colnames = c("col1", "col2", "col3")

P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames))
print(P)

Die Ausführung des obigen Codes erzeugt das folgende Ergebnis:

[,1] [,2] [,3]
[1,]    3    4    5
[2,]    6    7    8
[3,]    9   10   11
[4,]   12   13   14
     [,1] [,2] [,3]
[1,]    3    7   11
[2,]    4    8   12
[3,]    5    9   13
[4,]    6   10   14
     col1 col2 col3
row1    3    4    5
row2    6    7    8
row3    9   10   11
row4   12   13   14

Matrix-Transponierung

Matrizen in der Sprache R bieten einet()Funktion, mit der sich die Zeilen- und Spaltenvertauschung von Matrizen realisieren lässt.

Zum Beispiel kann eine Matrix mit m Zeilen und n Spalten mithilfe der Funktion t() in eine Matrix mit n Zeilen und m Spalten umgewandelt werden.

Beispiel

# Eine Matrix mit 2 Zeilen und 3 Spalten erstellen
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)
print(M)
     [,1] [,2] [,3]
[1,]    2    6    5
[2,]    1   10    4
# In eine Matrix mit 3 Zeilen und 2 Spalten umwandeln
print(t(M))

Die Ausführung des obigen Codes erzeugt das folgende Ergebnis:

     [,1] [,2] [,3]
[1,]    2    6    5
[2,]    1   10    4
[1] "-----转换-----"
     [,1] [,2]
[1,]    2    1
[2,]    6   10
[3,]    5    4

Zugriff auf Matrixelemente

Wenn Sie Matrixelemente abrufen möchten, können Sie den Spaltenindex und den Zeilenindex der Elemente verwenden, ähnlich wie bei der Koordinatenform.

Beispiel

# Definiere die Namen von Zeilen und Spalten
rownames = c("row1", "row2", "row3", "row4")
colnames = c("col1", "col2", "col3")

# Eine Matrix erstellen
P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames))
print(P)
# Element in der ersten Zeile und dritten Spalte abrufen
print(P[1,3])

# Element in der vierten Zeile und zweiten Spalte abrufen
print(P[4,2])

# Die zweite Zeile abrufen
print(P[2,])

# Die dritte Spalte abrufen
print(P[,3])

Die Ausführung des obigen Codes erzeugt das folgende Ergebnis:

col1 col2 col3
row1    3    4    5
row2    6    7    8
row3    9   10   11
row4   12   13   14
[1] 5
[1] 13
col1 col2 col3 
    6    7    8 
row1 row2 row3 row4 
    5    8   11   14 

Matrixberechnungen

Matrizen gleicher Größe (gleiche Anzahl von Zeilen und Spalten) können addiert oder voneinander subtrahiert werden, und zwar durch Addition bzw. Subtraktion der Elemente an jeder Position. Die Matrixmultiplikation ist komplexer. Zwei Matrizen können genau dann multipliziert werden, wenn die Anzahl der Spalten der ersten Matrix gleich der Anzahl der Zeilen der zweiten Matrix ist.

Matrixaddition und -subtraktion

Beispiel

# Eine Matrix mit 2 Zeilen und 3 Spalten erstellen
matrix1 <- matrix(c(7, 9, -1, 4, 2, 3), nrow = 2)
print(matrix1)

matrix2 <- matrix(c(6, 1, 0, 9, 3, 2), nrow = 2)
print(matrix2)

# Zwei Matrizen addieren
result <- matrix1 + matrix2
cat("Additionsergebnis:","\n")
print(result)

# Zwei Matrizen subtrahieren
result <- matrix1 - matrix2
cat("Subtraktionsergebnis:","\n")
print(result)

Die Ausführung des obigen Codes erzeugt das folgende Ergebnis:

[,1] [,2] [,3]
[1,]    7   -1    2
[2,]    9    4    3
     [,1] [,2] [,3]
[1,]    6    0    3
[2,]    1    9    2
相加结果: 
     [,1] [,2] [,3]
[1,]   13   -1    5
[2,]   10   13    5
相减结果: 
     [,1] [,2] [,3]
[1,]    1   -1   -1
[2,]    8   -5    1

Matrixmultiplikation und Division

Beispiel

# Eine Matrix mit 2 Zeilen und 3 Spalten erstellen
matrix1 <- matrix(c(7, 9, -1, 4, 2, 3), nrow = 2)
print(matrix1)

matrix2 <- matrix(c(6, 1, 0, 9, 3, 2), nrow = 2)
print(matrix2)

# Zwei Matrizen multiplizieren
result <- matrix1 * matrix2
cat("Multiplikationsergebnis:","\n")
print(result)

# Zwei Matrizen dividieren
result <- matrix1 / matrix2
cat("Divisionsergebnis:","\n")
print(result)

Die Ausführung des obigen Codes erzeugt das folgende Ergebnis:

[,1] [,2] [,3]
[1,]    7   -1    2
[2,]    9    4    3
     [,1] [,2] [,3]
[1,]    6    0    3
[2,]    1    9    2
相乘结果: 
     [,1] [,2] [,3]
[1,]   42    0    6
[2,]    9   36    6
相除结果: 
         [,1]      [,2]      [,3]
[1,] 1.166667      -Inf 0.6666667
[2,] 9.000000 0.4444444 1.5000000
Andere Erweiterungen