R Academy · Lektion

Oprettelse af matricer med matrix()

Byg matricer ved at angive data, nrow, ncol og byrow.

Lektion 1 af 413 trin

Oprettelse af matricer med matrix() er en gratis R Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i R Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. R Academy-kurset indeholder 4 lektioner i alt.

Hvad er en matrix i R?

En matrix i R er en todimensional datastruktur, hvor alle elementer skal være af samme type. Tænk på den som en tabel med rækker og kolonner. Matricer er afgørende inden for lineær algebra, billedbehandling og statistiske beregninger.

# A simple 2x3 matrix
m <- matrix(1:6, nrow = 2, ncol = 3)
cat('A 2x3 matrix:
')
print(m)
cat('Dimensions:', dim(m), '
')  # rows cols

matrix(data, nrow, ncol)

Funktionen matrix() tager en datavektor og arrangerer den i rækker og kolonner. Som standard udfylder R matricen kolonne for kolonne (kolonnevis rækkefølge).

# Filled column by column (default)
m_col <- matrix(1:12, nrow = 3, ncol = 4)
cat('Column-filled 3x4 matrix:
')
print(m_col)
cat('Note: 1,2,3 fill the first COLUMN, not the first row
')

byrow = TRUE til rækkevis udfyldning

Hvis du angiver byrow = TRUE, udfyldes matricen række for række. Det er ofte mere intuitivt, når du tænker på data som rækker (for eksempel i et regneark).

# Filled row by row
m_row <- matrix(1:12, nrow = 3, ncol = 4, byrow = TRUE)
cat('Row-filled 3x4 matrix:
')
print(m_row)
cat('Note: 1,2,3,4 fill the first ROW
')

# Verify byrow
m_check <- matrix(c(1,2,3,4,5,6), nrow = 2, byrow = TRUE)
print(m_check)

Matrix fra en datavektor

Du kan oprette en meningsfuld matrix ved at sende en ægte datavektor ind. R genbruger vektoren, hvis den er kortere end nrow * ncol, men det er god praksis at angive præcis det rigtige antal elementer.

# Exam scores: 3 students, 4 subjects
scores_data <- c(88, 92, 75, 81,   # Student 1
                 79, 85, 90, 73,   # Student 2
                 95, 78, 82, 88)   # Student 3

exam_matrix <- matrix(scores_data, nrow = 3, ncol = 4, byrow = TRUE)
rownames(exam_matrix) <- c('Alice', 'Bob', 'Carol')
colnames(exam_matrix) <- c('Math', 'Science', 'English', 'History')
print(exam_matrix)

dim() — Kontrol af dimensioner

dim(m) returnerer en numerisk vektor med længde 2: først antallet af rækker og derefter antallet af kolonner. Du kan også bruge nrow(m) og ncol(m) til de enkelte dimensioner.

m <- matrix(1:20, nrow = 4, ncol = 5)
cat('dim(m):', dim(m), '
')       # 4 5
cat('nrow(m):', nrow(m), '
')     # 4
cat('ncol(m):', ncol(m), '
')     # 5
cat('Total elements:', length(m), '
')  # 20

is.matrix() — Kontrol af type

is.matrix(x) returnerer TRUE, hvis x er en matrix. Det er nyttigt til validering af funktionsinput. Bemærk, at en matrix også er et array (is.array() returnerer også TRUE).

m <- matrix(1:4, nrow = 2)
v <- c(1, 2, 3, 4)

cat('is.matrix(m):', is.matrix(m), '
')  # TRUE
cat('is.matrix(v):', is.matrix(v), '
')  # FALSE
cat('is.array(m): ', is.array(m), '
')   # TRUE (matrix IS an array)
cat('class(m):    ', class(m), '
')

Nulmatrix og identitetsmatrix

Du kan oprette særlige matricer ved at genbruge en enkelt værdi. matrix(0, n, n) opretter en nulmatrix, mens diag(n) opretter en identitetsmatrix på n x n (1-taller på diagonalen og 0'er alle andre steder).

# Zero matrix 3x3
zero_mat <- matrix(0, nrow = 3, ncol = 3)
cat('Zero matrix:
')
print(zero_mat)

# Identity matrix 3x3
identity_mat <- diag(3)
cat('Identity matrix:
')
print(identity_mat)

Matrix fra genbrugte værdier

Når datavektoren er kortere end nrow * ncol, genbruger R vektoren (gentager den fra begyndelsen). R giver dig en advarsel, hvis vektorens længde ikke går op i matricens størrelse.

# Recycle a 2-element vector into a 4x4 matrix
alternate <- matrix(c(0, 1), nrow = 4, ncol = 4)
cat('Recycled 0,1 into 4x4:
')
print(alternate)

# Checkerboard effect: fills column by column

Angivelse af kun nrow eller ncol

Du behøver kun at angive enten nrow eller ncol — R beregner automatisk den anden ud fra datalængden. Hvis dataene ikke går op, genbruger R dem og viser en advarsel.

# Only specify nrow, R infers ncol
m1 <- matrix(1:12, nrow = 3)
cat('nrow=3 only, inferred ncol =', ncol(m1), '
')
print(m1)

# Only specify ncol, R infers nrow
m2 <- matrix(1:12, ncol = 4)
cat('ncol=4 only, inferred nrow =', nrow(m2), '
')

Matrix med tekst

Matricer er ikke begrænset til tal — du kan oprette tekstmatricer til kategoriske data, spilleplader eller opslagstabeller. Alle elementer skal dog stadig være af samme type.

# Tic-tac-toe board
board <- matrix(c('X', 'O', 'X',
                   'O', 'X', 'O',
                   'O', 'X', 'O'),
                nrow = 3, ncol = 3, byrow = TRUE)
cat('Tic-Tac-Toe board:
')
print(board)
cat('Type:', class(board), '
')

Oprettelse af matricer: Oversigt

Her er en oversigt over måder at oprette matricer på i R:

  • matrix(data, nrow, ncol) — grundlæggende oprettelse (kolonnevis udfyldning som standard)
  • matrix(data, nrow, ncol, byrow=TRUE) — udfyld række for række
  • matrix(0, n, m) — nulmatrix
  • diag(n) — identitetsmatrix
  • dim(m), nrow(m), ncol(m) — undersøg dimensioner
  • is.matrix(m) — kontrol af type
# Quick creation reference
cat('3x2 column-fill:
'); print(matrix(1:6, 3, 2))
cat('3x2 row-fill:
');    print(matrix(1:6, 3, 2, byrow=TRUE))
cat('2x2 zeros:
');       print(matrix(0, 2, 2))
cat('3x3 identity:
');    print(diag(3))

Hurtigt tjek

Som standard (uden byrow = TRUE), i hvilken rækkefølge udfylder matrix() elementerne?

Opsummering: Oprettelse af matricer

Fremragende! De vigtigste pointer fra denne lektion:

  • matrix(data, nrow, ncol) opretter en matrix — data udfyldes som standard kolonne for kolonne
  • Brug byrow = TRUE til at udfylde række for række
  • Du behøver kun angive nrow ELLER ncol — R udleder den anden værdi
  • dim(m) returnerer c(rows, cols); nrow() og ncol() angiver de individuelle antal
  • is.matrix() tester, om et objekt er en matrix
  • matrix(0, n, n) opretter en nulmatrix; diag(n) opretter en identitetsmatrix
# Full workflow: create, inspect, verify
m <- matrix(seq(2, 24, by = 2), nrow = 4, ncol = 3, byrow = TRUE)
cat('Even numbers matrix:
')
print(m)
cat('Rows:', nrow(m), '| Cols:', ncol(m), '| Elements:', length(m), '
')
Gratis at komme i gang

Lær R med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
43
Lektioner
159

Ofte stillede spørgsmål

Er lektionen “Oprettelse af matricer med matrix()” gratis?

Ja — alle 3 lektioner i læringssporet R Academy, inklusive “Oprettelse af matricer med matrix()”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. R Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Oprettelse af matricer med matrix()”?

Byg matricer ved at angive data, nrow, ncol og byrow. Du øver dig i R Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på R Academy?

Der kræves ingen tidligere erfaring. R Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Oprettelse af matricer med matrix()”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne R Academy-lektion?

Ja. Alle R Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Oprettelse af matricer med matrix()
  2. Matrixindeksering og udvælgelse
  3. Matricearitmetik og operationer
  4. Transponering og ændring af matricers form
← Tilbage til R Academy