0Pricing
R Academy · Lezione

Creazione di matrici con matrix()

Costruisca matrici specificando data, nrow, ncol e byrow.

Creazione di matrici con matrix() è una lezione R Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento R Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso R Academy include 4 lezioni in totale.

Che cos'è una matrice in R?

Una matrice in R è una struttura dati bidimensionale in cui tutti gli elementi devono essere dello stesso tipo. Pensatela come una tabella con righe e colonne. Le matrici sono essenziali per l'algebra lineare, l'elaborazione delle immagini e i calcoli statistici.

# 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)

La funzione matrix() prende un vettore di dati e lo dispone in righe e colonne. Per impostazione predefinita, R riempie la matrice colonna per colonna (ordine column-major).

# 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 per riempire per righe

Impostare byrow = TRUE riempie la matrice riga per riga. Spesso è più intuitivo quando si ragiona sui dati in termini di righe, come in un foglio di calcolo.

# 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)

Matrice da un vettore di dati

Potete creare una matrice significativa passando un vettore di dati reali. R ricicla il vettore se è più corto di nrow * ncol, ma è buona pratica fornire esattamente il numero corretto di elementi.

# 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() — controllare le dimensioni

dim(m) restituisce un vettore numerico di lunghezza 2: prima il numero di righe, poi il numero di colonne. Potete anche usare nrow(m) e ncol(m) per ottenere le singole dimensioni.

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() — controllare il tipo

is.matrix(x) restituisce TRUE se x è una matrice. È utile per convalidare gli input delle funzioni. Notate che una matrice è anche un array (is.array() restituisce anch'esso 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), '
')

Matrice nulla e matrice identità

Potete creare matrici speciali riciclando un singolo valore. matrix(0, n, n) crea una matrice nulla; diag(n) crea una matrice identità n x n (1 sulla diagonale, 0 altrove).

# 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)

Matrice da valori riciclati

Quando il vettore di dati è più corto di nrow * ncol, R ricicla il vettore, ripetendolo dall'inizio. R mostra un avviso se la lunghezza del vettore non divide esattamente la dimensione della matrice.

# 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

Fornire solo nrow o ncol

È sufficiente fornire uno solo tra nrow e ncol: R calcola automaticamente l'altro in base alla lunghezza dei dati. Se i dati non si dividono esattamente, R li ricicla e mostra un avviso.

# 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), '
')

Matrice di caratteri

Le matrici non sono limitate ai numeri: potete creare matrici di caratteri per dati categorici, tabelloni di gioco o griglie di ricerca. Tuttavia, tutti gli elementi devono comunque essere dello stesso tipo.

# 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), '
')

Creare matrici: riepilogo

Ecco un riepilogo dei modi per creare matrici in R:

  • matrix(data, nrow, ncol) — creazione di base (riempimento per colonne come impostazione predefinita)
  • matrix(data, nrow, ncol, byrow=TRUE) — riempimento riga per riga
  • matrix(0, n, m) — matrice nulla
  • diag(n) — matrice identità
  • dim(m), nrow(m), ncol(m) — esaminare le dimensioni
  • is.matrix(m) — controllo del tipo
# 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))

Verifica rapida

Per impostazione predefinita (senza byrow = TRUE), in quale ordine matrix() riempie gli elementi?

Riepilogo: creazione di matrici

Ottimo! Ecco i concetti chiave di questa lezione:

  • matrix(data, nrow, ncol) crea una matrice: per impostazione predefinita, i dati vengono inseriti colonna per colonna
  • Usi byrow = TRUE per inserire i dati riga per riga
  • È sufficiente specificare nrow OPPURE ncol: R deduce l'altro valore
  • dim(m) restituisce c(rows, cols); nrow() e ncol() restituiscono i singoli conteggi
  • is.matrix() verifica se un oggetto è una matrice
  • matrix(0, n, n) crea una matrice di zeri; diag(n) crea una matrice identità
# 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), '
')

Domande Frequenti

La lezione «Creazione di matrici con matrix()» è gratuita?

Sì — il testo completo di «Creazione di matrici con matrix()» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso R Academy, passa a CoddyKit PRO. Il corso R Academy include 4 lezioni in totale.

Cosa imparerò in «Creazione di matrici con matrix()»?

Costruisca matrici specificando data, nrow, ncol e byrow. Eserciti R Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare R Academy?

Non è richiesta alcuna esperienza precedente. R Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Creazione di matrici con matrix()»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione R Academy?

Sì. Ogni lezione R Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Creazione di matrici con matrix()
  2. Indicizzazione e subset delle matrici
  3. Aritmetica e operazioni sulle matrici
  4. Trasposizione e rimodellazione delle matrici
← Torna a R Academy