Oprettelse af matricer med matrix()
Byg matricer ved at angive data, nrow, ncol og byrow.
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 colsmatrix(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), '
') # 20is.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 columnAngivelse 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ækkematrix(0, n, m)— nulmatrixdiag(n)— identitetsmatrixdim(m),nrow(m),ncol(m)— undersøg dimensioneris.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 = TRUEtil at udfylde række for række - Du behøver kun angive
nrowELLERncol— R udleder den anden værdi dim(m)returnererc(rows, cols);nrow()ogncol()angiver de individuelle antalis.matrix()tester, om et objekt er en matrixmatrix(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), '
')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
- Oprettelse af matricer med matrix()
- Matrixindeksering og udvælgelse
- Matricearitmetik og operationer
- Transponering og ændring af matricers form