Menu
Coddy logo textTech

Matrizen erstellen

Teil des Abschnitts Logik und Ablaufsteuerung der R-Journey von Coddy. Lektion 17 von 64.

Eine Matrix ist ein Vektor, der in Zeilen und Spalten angeordnet ist, und jeder Wert hat denselben Typ. matrix(data, nrow = ...) füllt sie standardmäßig spaltenweise:

m <- matrix(1:6, nrow = 2)
print(m)

Ausgabe:

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

Füge byrow = TRUE hinzu, um die Matrix zeilenweise zu füllen, passend zu Daten, die eine Zeile pro Zeile geschrieben wurden:

m <- matrix(1:6, nrow = 2, byrow = TRUE)
print(m)

Ausgabe:

     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6

Gib entweder nrow oder ncol an; R berechnet das jeweils andere aus der Länge der Daten.

dim(m) gibt die Anzahl der Zeilen und Spalten zurück, und nrow() sowie ncol() geben jeweils eine davon allein zurück. matrix(0, nrow = 2, ncol = 3) wiederholt einen einzelnen Wert, um die Matrix zu füllen:

m <- matrix(0, nrow = 2, ncol = 3)
print(dim(m))
print(nrow(m) * ncol(m))
print(length(m))

Ausgabe:

[1] 2 3
[1] 6
[1] 6

rbind() stapelt Vektoren als Zeilen und cbind() als Spalten, wodurch aus separaten Vektoren eine Matrix erstellt wird:

a <- c(1, 2, 3)
b <- c(4, 5, 6)
print(rbind(a, b))
print(dim(cbind(a, b)))

Ausgabe:

  [,1] [,2] [,3]
a    1    2    3
b    4    5    6
[1] 3 2
challenge icon

Aufgabe

Einfach

Vervollständige make_grid(values, n_cols). Gib eine Matrix mit n_cols Spalten zurück, die values zeilenweise enthält. Die Anzahl der Werte ist immer ein Vielfaches von n_cols.

Der bereitgestellte Code liest die Werte aus einer durch Kommas getrennten Zeile und n_cols aus der nächsten Zeile. Er gibt jede Zeile der zurückgegebenen Matrix in einer eigenen Zeile aus und anschließend ihre Größe als rows x columns.

Probier es selbst

make_grid <- function(values, n_cols) {
  # Schreibe deinen Code hier
  matrix(values)
}

# Mitgelieferter Ein-/Ausgabecode: belasse ihn wie er ist
input <- suppressWarnings(readLines(file("stdin")))
values <- as.numeric(strsplit(input[1], ",")[[1]])
m <- make_grid(values, as.numeric(input[2]))
for (i in seq_len(nrow(m))) cat(m[i, ], "\n")
cat(nrow(m), "x", ncol(m), "\n")
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik und Ablaufsteuerung

Übe selbstständig: Online-R-Compiler