English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

R-Matrizen

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

Transponierte Matrix

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

Zugriff auf Matrixelemente

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

Matrixrechnung

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.

Matrixaddition und -subtraktion

# 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

Matrixmultiplikation und -division

# 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