English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
R bietet Matrix-Typen für die Forschung in der linearen Algebra an. Diese Datenstruktur ähnelt anderen Sprachen in Form von zwei-dimensionalen Arrays, aber R bietet Unterstützung für Matrixoperationen auf Sprachebene.
Die Elemente der Matrix können Zahlen, Symbole oder mathematische Ausdrücke sein.
Eine Matrix von M x N besteht aus M (Zeile) und N (Spalte)Elementen angeordnet ist.
Hier ist ein Beispiel für ein rechteckiges Array, das aus 6 aus numerischen Elementen bestehend 2 Zeile 3 Spaltenmatrix:
R bietet die Funktion matrix() für die Erstellung von Matrizen an. Die Syntax ist wie folgt:
matrix(data = NA, nrow = 1,ncol = 1,byrow = FALSE, dimnames = NULL
Parameterbeschreibung:
data Vektor, Daten der Matrix
nrow Anzahl der Zeilen
ncol Anzahl der Spalten
byrow Logischer Wert, FALSE bedeutet Spaltenweise Anordnung, TRUE bedeutet Zeilenweise Anordnung
dimname Definition der Namen für Zeilen und Spalten
Erstellen einer numerischen Matrix:
# byrow ist TRUE, Elemente werden Zeilenweise angeordnet M <- matrix(c(3:14), nrow = 4,byrow = TRUE print(M) # Ebyrow ist FALSE, Elemente werden Spaltenweise angeordnet N <- matrix(c(3:14), nrow = 4,byrow = FALSE print(N) # Definition der Namen von Zeile und Spalte 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 Ausgabe des folgenden Codes ist:
[[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
R bietet die Funktion t() für die Umwandlung von Zeilen und Spalten einer Matrix an.
Zum Beispiel gibt es eine Matrix mit m Zeilen und n Spalten, die durch die Funktion t() in eine Matrix mit n Zeilen und m Spalten umgewandelt werden kann.
# Erstellen eines 2 Zeile 3 Spaltenmatrix 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 # Umwandeln 3 Zeile 2 Spaltenmatrix print(t(M))
Die Ausgabe des folgenden Codes ist:
[[1] [,2] [,3] [1,] 2 6 5 [2,] 1 10 4 [1"-----Umwandlung-----" [[1] [,2] [1,] 2 1 [2,] 6 10 [3,] 5 4
Wenn Sie den Wert eines Matrixelements abrufen möchten, können Sie die Spalten- und Zeilenindizes wie im Koordinatenformat verwenden.
# Definition der Namen von Zeile und Spalte rownames = c("row1", "row2", "row3", "row4") colnames = c("col1", "col2", "col3") # Erstellen einer Matrix P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames)) print(P) # Element des dritten Feldes der ersten Spalte abrufen print(P[1,3)) # Element des vierten Feldes der zweiten Spalte abrufen print(P[4,2)) # Zweite Zeile abrufen print(P[2,]) # Drittes Feld abrufen print(P[,3))
Die Ausgabe des folgenden Codes ist:
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
Größen gleich (Zeilen- und Spaltenzahlen sind gleich) können miteinander addiert und subtrahiert werden, d.h. die Addition und Subtraktion wird für jeden Positionselement durchgeführt. Die Matrixmultiplikation ist komplexer. Matrizen können multipliziert werden, wenn und nur wenn die Anzahl der Spalten der ersten Matrix der Anzahl der Zeilen der zweiten Matrix entspricht.
# Erstellen 2 Zeile 3 Spaltenmatrix 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 Ausgabe des folgenden Codes ist:
[[1] [,2] [,3] [1,] 7 -1 2 [2,] 9 4 3 [[1] [,2] [,3] [1,] 6 0 3 [2,] 1 9 2 Additionsergebnis: [[1] [,2] [,3] [1,] 13 -1 5 [2,] 10 13 5 Subtraktionsergebnis: [[1] [,2] [,3] [1,] 1 -1 -1 [2,] 8 -5 1
# Erstellen 2 Zeile 3 Spaltenmatrix 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 Ausgabe des folgenden Codes ist:
[[1] [,2] [,3] [1,] 7 -1 2 [2,] 9 4 3 [[1] [,2] [,3] [1,] 6 0 3 [2,] 1 9 2 Multiplikationsergebnis: [[1] [,2] [,3] [1,] 42 0 6 [2,] 9 36 6 Divisionsergebnis: [[1] [,2] [,3] [1,] 1.166667 -Inf 0.6666667 [2,] 9.000000 0.4444444 1.5000000