Corso
Le matrici sono oggetti i cui elementi sono rappresentati in una struttura bidimensionale, in cui sono presenti per lo più elementi numerici per eseguire varie operazioni.
Per esempio, guarda la matrice qui sotto.
[,1] [,2] [,3]
[1,] 5 6 7
[2,] 8 9 10
[3,] 11 12 13
La matrice sopra mostra che ci sono 3 righe e 3 colonne.
In R una matrice può essere creata usando "matrix()".
La sintassi di una matrice in R può essere definita come segue:
matrix(value, nrow, ncol, byrow, dimnames)
I parametri della funzione matrix sono definiti di seguito:
- value - specifica il vettore di input, in cui ogni voce indica gli elementi in una matrice.
- nrow - specifica il numero di righe della matrice.
- ncol - specifica il numero di colonne della matrice.
- byrow - Valore booleano che può essere TRUE o FALSE. Se TRUE, gli elementi della matrice sono disposti per riga, mentre con FALSE sono disposti per colonna.
- dimnames - specifica i nomi assegnati a ciascun elemento delle righe e delle colonne di una matrice.
Vediamo un esempio qui sotto in cui "mat" è il nome di una matrice con input vettoriale dentro c composto dai valori 8,4,5,6,7,9. Contiene anche il numero di righe, cioè "nrow" pari a due e "ncol" pari a tre, il che significa che la dimensione della matrice è 2 * 3. Inoltre, gli elementi della matrice sono disposti per riga, il che significa che l'input del vettore viene inserito riga per riga.
mat = matrix(c(8,4,5,6,7,9),nrow = 2, ncol = 3,byrow = TRUE)
print(mat)
L'output del codice sopra è mostrato qui sotto: ci sono tre colonne e due righe e gli elementi sono riempiti per riga.
[,1] [,2] [,3]
[1,] 8 4 5
[2,] 6 7 9
Assegnare nomi a righe e colonne
Creiamo una matrice con elementi da 1 a 9, con numero di righe pari a 3. Inoltre, le righe e le colonne sono nominate con un input vettoriale contenente un elenco da r1 a r3 e da c1 a c3.
mat <- matrix(1:9, nrow = 3,dimnames = list(c("r1","r2","r3"), c("c1","c2","c3")))
mat
c1 c2 c3
r1 1 4 7
r2 2 5 8
r3 3 6 9
L'output sopra mostra che ci sono elementi da 1 a 9 riempiti per colonna. Inoltre, righe e colonne sono etichettate da r1 a r3 e da c1 a c3.
Accedere agli elementi di una matrice
La matrice sottostante si chiama "mat" e consiste di 3 righe e 3 colonne.
c1 c2 c3
r1 1 4 7
r2 2 5 8
r3 3 6 9
Per accedere singolarmente agli elementi della matrice sopra, devi passare il nome della matrice con le parentesi quadre contenenti riga e colonna.
- Per accedere all'elemento 5 della matrice sopra si usa la seguente sintassi.
mat[2,2] - Per accedere all'elemento 6 della matrice sopra si usa la seguente sintassi.
mat[3,2] - Per accedere a tutta la prima colonna della matrice, cioè [1 2 3], si usa la seguente sintassi.
mat[,1] - Per accedere a tutta la seconda riga della matrice, cioè [2 5 8], si usa la seguente sintassi.
mat[2,]
Operazioni con le matrici
Addizione e sottrazione di matrici
Condizione: La condizione per l'addizione e la sottrazione di matrici è che le matrici abbiano la stessa dimensione, con lo stesso numero di righe e colonne. Per esempio
Le matrici sottostanti mat1 e mat2 hanno dimensione 3 * 3, con 3 righe e 3 colonne, e il numero di righe e colonne in entrambe le matrici è uguale.
mat1 <- matrix(c(5,10,15,20,25,30,35,40,45), nrow = 3)
print(mat1)
mat2 <- matrix(c(50,55,60,65,70,75,80,85,90), nrow = 3)
print(mat2)
[,1] [,2] [,3]
[1,] 5 20 35
[2,] 10 25 40
[3,] 15 30 45
[,1] [,2] [,3]
[1,] 50 65 80
[2,] 55 70 85
[3,] 60 75 90
Le matrici sopra sono stampate mostrando ogni voce o elemento, riempito per colonna.
add_output <- mat1 + mat2
cat("Addition","\n")
print(add_output)
sub_output <- mat1 - mat2
cat("Subtraction","\n")
print(sub_output)
Addition
[,1] [,2] [,3]
[1,] 55 85 115
[2,] 65 95 125
[3,] 75 105 135
Subtraction
[,1] [,2] [,3]
[1,] -45 -45 -45
[2,] -45 -45 -45
[3,] -45 -45 -45
L'output sopra di addizione e sottrazione di matrici mostra che ogni elemento di entrambe le matrici viene sommato o sottratto. Per esempio, nell'addizione, l'elemento in riga 1 e colonna 1, cioè 5 in mat1, viene sommato all'elemento in riga 1 e colonna 1 in mat2. Di conseguenza si ottiene 55. Allo stesso modo, tutte le voci seguono un processo analogo nell'addizione e nella sottrazione per ottenere il risultato sopra.
Moltiplicazione e divisione di matrici
Condizione: La condizione per la moltiplicazione e la divisione di matrici è che il numero di righe e di colonne sia lo stesso. In altre parole, la dimensione deve essere uguale.
Moltiplicazione di matrici
Vediamo un esempio qui sotto in cui si prendono due matrici chiamate mat1 e mat2 con lo stesso numero di righe pari a tre e colonne pari a due. Ci sono sei elementi nelle matrici riempiti per colonna e la dimensione di ciascuna matrice è 3 * 2.
mat1<- matrix(c(2,4,6,8,10,12), nrow = 3,ncol =2)
print(mat1)
mat2 <- matrix(c(14,16,18,20,22,24), nrow = 3,ncol=2)
print(mat2)
final <- mat1 * mat2
print('------------------')
cat("Multiplication","\n")
print(final)
[,1] [,2]
[1,] 2 8
[2,] 4 10
[3,] 6 12
[,1] [,2]
[1,] 14 20
[2,] 16 22
[3,] 18 24
-----------------
Multiplication
[,1] [,2]
[1,] 28 160
[2,] 64 220
[3,] 108 288
L'output della moltiplicazione di matrici sopra mostra che ogni elemento di mat1 e mat2 viene moltiplicato con il corrispondente. Per esempio, "mat1[1][1]", cioè 2, viene moltiplicato per "mat2[1][1]", cioè 14, per ottenere 28. Allo stesso modo, il processo viene seguito per ogni elemento in entrambe le matrici e, infine, in "mat1[3][2]", cioè 12, e "mat2[3][2]", cioè 24, per ottenere 288.
Divisione di matrici
Vediamo un esempio qui sotto in cui si prendono due matrici chiamate mat1 e mat2 con lo stesso numero di righe pari a tre e colonne pari a due. Ci sono sei elementi nelle matrici riempiti per colonna e la dimensione di ciascuna matrice è 3 * 2.
mat1<- matrix(c(2,4,6,8,10,12), nrow = 3,ncol =2)
print(mat1)
mat2 <- matrix(c(14,16,18,20,22,24), nrow = 3,ncol=2)
print(mat2)
final <- mat1 / mat2
print('--------------')
cat("Division","\n")
print(final)
[,1] [,2]
[1,] 2 8
[2,] 4 10
[3,] 6 12
[,1] [,2]
[1,] 14 20
[2,] 16 22
[3,] 18 24
--------------
Division
[,1] [,2]
[1,] 0.1428571 0.4000000
[2,] 0.2500000 0.4545455
[3,] 0.3333333 0.5000000
L'output della divisione di matrici sopra mostra che ogni elemento di mat1 e mat2 viene diviso tra loro. Per esempio, "mat1[1][1]", cioè 2, viene diviso per "mat2[1][1]", cioè 14, per ottenere 0.1428571. Allo stesso modo, il processo viene seguito per ogni elemento in entrambe le matrici e, infine, in "mat1[3][2]", cioè 12, e "mat2[3][2]", cioè 24, per ottenere 0.5000000.
Congratulazioni
Congratulazioni, sei arrivato alla fine di questo tutorial!
In questo tutorial hai imparato tutto sulle matrici in R: come nominare righe e colonne, accedere agli elementi e svolgere operazioni come addizione, sottrazione, moltiplicazione e divisione.
Se vuoi imparare di più su R, segui il corso Introduction to R di DataCamp.

