fondamenti di informatica - intranet · matlab: array ed introduzione alle matrici outline...
TRANSCRIPT
![Page 1: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/1.jpg)
Fondamenti di InformaticaMATLAB : Array e d I nt rod u z ion e a l le Matr ic i
P r o f. R a f f a e l e P i z zo l a n t e
A . A . 2 0 1 6 / 1 7
![Page 2: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/2.jpg)
MATLAB: Array ed Introduzione alle MatriciOUTLINE
•Operazioni su Variabili
• Introduzione alle Matrici
•Array in MATLAB • Indici Array
•Operazioni su Array
MATLAB: Array ed Introduzione alle Matrici
![Page 3: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/3.jpg)
Operazioni su Variabili – 1/2
>> x = 2.6; >> x = 2.2; >> x = 2.6;
>> round(x) >> ceil(x) >> floor(x)
ans = ans = ans =
3 3 2
>> x = 2.2;
>> round(x)
ans =
2
>> x = 1.5;
>> round(x)
ans =
2
Arrotondamento Arrotondamento per eccesso (Parte Intera Superiore)
Arrotondamento per difetto (Parte Intera Inferiore)
MATLAB: Array ed Introduzione alle Matrici
![Page 4: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/4.jpg)
Operazioni su Variabili – 2/2• Voglio ottenere il valore assoluto di una variabile, ma non conosco il nome della funzione, cosa devo fare?
MATLAB: Array ed Introduzione alle Matrici
![Page 5: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/5.jpg)
Operazioni su Variabili – 2/2• Voglio ottenere il valore assoluto di una variabile, ma non conosco il nome della funzione, cosa devo fare?• Usare il comando lookfor
• Usare il comando help
• Usare il comando helpbrowser
• Usare il comando doc
Valore assoluto di un numero
>> x = -2
>> abs(x)
ans =
2
MATLAB: Array ed Introduzione alle Matrici
![Page 6: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/6.jpg)
Introduzione alle Matrici – 1/5• Come detto nelle scorse lezioni…
• Il nome MATLAB deriva da MATrix LABoratory
• Ogni cosa in MATLAB è rappresentata mediante matrici
• Anche le variabili viste finora sono un caso particolare di matrice, aventidimensione 1 × 1
MATLAB: Array ed Introduzione alle Matrici
![Page 7: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/7.jpg)
Introduzione alle Matrici – 2/5• Una matrice (2-D) contiene elementi numerati per riga e per colonna, ad esempio mij denota l’elemento alla riga i e colonna j
MATLAB: Array ed Introduzione alle Matrici
![Page 8: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/8.jpg)
Introduzione alle Matrici – 3/5• Ogni cosa in MATLAB è rappresentata mediante matrici!
• Se hanno una sola dimensione (1D)• Il loro aspetto intuitivo è quello di una lista o un array (vettore)
• Un array riga è una matrice 1 × n
• Un array colonna è una matrice n × 1
1 2 3 4
MATLAB: Array ed Introduzione alle Matrici
![Page 9: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/9.jpg)
Introduzione alle Matrici – 4/5• Ogni cosa in MATLAB è rappresentata mediante matrici!
• Se hanno due dimensioni (2D)• Il loro aspetto intuitivo è quello di una rettangolo (o quadrato)
1 2 3 4
1 (1, 1) (1, 2) (1, 3) (1, 4)
2 (2, 1) (2, 2) (2, 3) (2, 4)
3 (3, 1) (3, 2) (3, 3) (3, 4)
4 (4, 1) (4, 2) (4, 3) (4, 4)
colonne
righ
e
MATLAB: Array ed Introduzione alle Matrici
![Page 10: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/10.jpg)
Introduzione alle Matrici – 5/5• Ogni cosa in MATLAB è rappresentata mediante matrici!
• Se hanno tre dimensioni (3D)• Il loro aspetto intuitivo è quello di un parallelepipedo
MATLAB: Array ed Introduzione alle Matrici
![Page 11: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/11.jpg)
(1, 1, 1) (1, 2, 1) (1, 3, 1) (1, 4, 1)
(2, 1, 1) (2, 2, 1) (2, 3, 1) (2, 4, 1)
(3, 1, 1) (3, 2, 1) (3, 3, 1) (3, 4, 1)
(4, 1, 1) (4, 2, 1) (4, 3, 1) (4, 4, 1)
colonne
righ
e
(1, 1, 3) (1, 2, 3) (1, 3, 3) (1, 4, 3)
(2, 1, 3) (2, 2, 3) (2, 3, 3) (2, 4, 3)
(3, 1, 3) (3, 2, 3) (3, 3, 3) (3, 4, 3)
(4, 1, 3) (4, 2, 3) (4, 3, 3) (4, 4, 3)
(1, 1, 2) (1, 2, 2) (1, 3, 2) (1, 4, 2)
(2, 1, 2) (2, 2, 2) (2, 3, 2) (2, 4, 2)
(3, 1, 2) (3, 2, 2) (3, 3, 2) (3, 4, 2)
(4, 1, 2) (4, 2, 2) (4, 3, 2) (4, 4, 2)
MATLAB: Array ed Introduzione alle Matrici
![Page 12: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/12.jpg)
Array•Un array (o vettore) è una collezione indicizzata
di variabili (elementi) dello stesso tipo
• Esempio 1• Array di voti
• Esempio 2
24 18 25 22 23 30 20
0.025 0.002 0.425 0.790
MATLAB: Array ed Introduzione alle Matrici
![Page 13: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/13.jpg)
Creare un Array – 1/7• Un array in MATLAB si crea scrivendo gli elementi che lo
compongono all’interno di una coppia di parentesiquadre• Gli elementi devono essere separati da una virgola o uno spazio
• Esempio 1• vet=[1,2,3,4,5]
• Array di nome vet composto da 5 elementi
• Esempio 2• vettore=[2 -1 -1]
• Array di nome vettore composto da 3 elementi
• Gli array qui mostrati vengono detti array riga• Elementi disposti in senso orizzontale
MATLAB: Array ed Introduzione alle Matrici
![Page 14: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/14.jpg)
Creare un Array – 2/7• MATLAB permette anche di creare array colonna (elementi dispostiin senso verticale). Esistono due metodi per farlo
• MATLAB visualizza gli array riga orizzontalmente e gli array colonnaverticalmente
5
6
7
8
RISULTATO (array colonna):vet =
Metodo 2 (operatore di trasposizione ’)
vet=[5 6 7 8]’
Metodo 1 (separatore ;)vet=[5;6;7;8]
MATLAB: Array ed Introduzione alle Matrici
![Page 15: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/15.jpg)
Creare un Array – 3/7• MATLAB permette di creare nuovi array partendo da array
preesistenti
• Esempiovet1=[1 2 3 4 5 6];
vet2=[7, 8, 9];
vet3=[vet1, vet2];
>> vet3 =
1 2 3 4 5 6 7 8 9
vet1 vet2
MATLAB: Array ed Introduzione alle Matrici
![Page 16: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/16.jpg)
Creare un Array – 4/7• È possibile creare un array di elementiregolarmente intervallati
MATLAB: Array ed Introduzione alle Matrici
![Page 17: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/17.jpg)
Creare un Array – 4/7• È possibile creare un array di elementiregolarmente intervallati
Esempio 1 [ 3 6 9 12 ]Esempio 2
[ 2 4 6 ]
MATLAB: Array ed Introduzione alle Matrici
![Page 18: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/18.jpg)
Creare un Array – 4/7• È possibile creare un array di elementiregolarmente intervallati
• >> x = 10:1:15
MATLAB: Array ed Introduzione alle Matrici
![Page 19: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/19.jpg)
Creare un Array – 4/7• È possibile creare un array di elementiregolarmente intervallati
• >> x = 10:1:15
• RISULTATO: x = [10 11 12 13 14 15]
Inizia da 10
Ad incrementi di 1 (con intervallo 1)
Si ferma quando arriva a 15
MATLAB: Array ed Introduzione alle Matrici
![Page 20: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/20.jpg)
Creare un Array – 4/7• È possibile creare un array di elementiregolarmente intervallati
• >> x = 10:1:15 Equivalente a x=[10:1:15]
• RISULTATO: x = [10 11 12 13 14 15]
Inizia da 10
Ad incrementi di 1 (con intervallo 1)
Si ferma quando arriva a 15
MATLAB: Array ed Introduzione alle Matrici
![Page 21: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/21.jpg)
Creare un Array – 5/7• Esempi• vet1=[0:2:8]
• RISULTATO: vet1=[0,2,4,6,8]
• vet1=[1:1:10]
• RISULTATO: vet1=[1,2,3,4,5,6,7,8,9,10]
• OSSERVAZIONE: Se l’incremento viene omesso, MATLAB lopone di default uguale a 1• Esempio
• 1:1:10 equivale a 1:10
MATLAB: Array ed Introduzione alle Matrici
![Page 22: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/22.jpg)
Creare un Array – 6/7• linspace(x1, x2, n)
• Crea un array riga di elementi linearmente intervallati, indicando il numerodi valori invece dell’incremento (come visto precedentemente)
• Genera n elementi tra x1 ed x2
n elementi
x1 x2
MATLAB: Array ed Introduzione alle Matrici
![Page 23: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/23.jpg)
Creare un Array – 6/7• Esempio 1• x=linspace(0, 9, 10)
• RISULTATO: x=[0 1 2 3 4 5 6 7 8 9]
• Esempio 2• x=linspace(0, 9, 3)
• RISULTATO: x=[0.00000 4.50000 9.00000]
0 1 92 43 5 6 7 8
0 4.5 9
10 elementi
3 elementi
NOTA: linspace(x1, x2) genera un array riga di 100 elementi, linearmente equidistanti tra x1 ed x2.Quindi, omettendo n, vengono generati 100 elementi
MATLAB: Array ed Introduzione alle Matrici
![Page 24: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/24.jpg)
Creare un Array – 7/7• Creare un array riga composto da tutti zero
• Creare un array riga composto da tutti uno
• Creare un array riga composto da numeri pseudocasuali
>> x = zeros(1, 5)
x =
0 0 0 0 0
>> x = ones(1, 6)
x =
1 1 1 1 1 1
1 riga, 5 colonne
1 riga, 6 colonne
>> x = rand(1, 4)
x =
0.9501 0.2311 0.6068 0.4860
Genera numeri pseudocasuali
uniformemente distribuiti tra 0 e 1
MATLAB: Array ed Introduzione alle Matrici
![Page 25: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/25.jpg)
Indicizzare un Array – 1/6• Come accedere ad uno specifico elemento
dell’array?• Si utilizzano gli indici (a partire da 1)
24 18 25 22 23 30 20
1 2 3 4 5 6 7
Elementi:
Indici:
v
v(i) indica l’i-esimo elemento di v
MATLAB: Array ed Introduzione alle Matrici
![Page 26: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/26.jpg)
Indicizzare un Array – 2/6• Esempio 1• v=[4 8 5 32 16 4]
• v(2)
• Secondo elemento dell’array v RISULTATO: elemento con valore 8
• Esempio 2• v=[4 8 5 32 16 4]
• v(5)
• Quinto elemento dell’array v RISULTATO: elemento con valore 16
• È anche possibile assegnare ad una variabile il valore di un elemento dell’array
• y = v(5) v assumerà il valore di 16
4 8 5 32 16 4
4 8 5 32 16 4
4 8 5 32 16 4
MATLAB: Array ed Introduzione alle Matrici
![Page 27: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/27.jpg)
Indicizzare un Array – 3/6• Manipolare un array tramite indici
• Cancellare un elemento da un array
1. v = [54 19 20 12 15]
2. v(2) = []
3. v = [54 20 12 15]
54 19 20 12 15
54 19 20 12 15
54 20 12 15
MATLAB: Array ed Introduzione alle Matrici
![Page 28: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/28.jpg)
Indicizzare un Array – 4/6• Manipolare un array tramite indici• Modificare il valore di un elemento in un array
1. v = [11 23 8 56 5]
2. v(4) = 77
3. v = [11 23 8 77 5]
11 23 8 56 5
11 23 8 ---56--- 5
11 23 8 77 5
11 23 8 77 5
MATLAB: Array ed Introduzione alle Matrici
![Page 29: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/29.jpg)
Indicizzare un Array – 5/6• È possibile accedere a più di un elemento dell’array allavolta
>> x = 10 : -1 : 1
x =
10 9 8 7 6 5 4 3 2 1
>> y = x([3,9,4])
y =
8 2 7
MATLAB: Array ed Introduzione alle Matrici
![Page 30: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/30.jpg)
Indicizzare un Array – 5/6• È possibile accedere a più di un elemento dell’array allavolta
>> x = 10 : -1 : 1
x =
10 9 8 7 6 5 4 3 2 1
>> y = x([3,9,4])
y =
8 2 7
MATLAB: Array ed Introduzione alle Matrici
Array contenente indici
![Page 31: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/31.jpg)
Indicizzare un Array – 5/6• È possibile accedere a più di un elemento dell’array allavolta
>> x = 10 : -1 : 1
x =
10 9 8 7 6 5 4 3 2 1
>> y = x([3,9,4])
y =
8 2 7
Indici3 4 9
Elementi
MATLAB: Array ed Introduzione alle Matrici
Array contenente indici
![Page 32: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/32.jpg)
Indicizzare un Array – 6/6• È possibile accedere a più di un elemento dell’array allavolta
>> x = 10 : -1 : 1
x =
10 9 8 7 6 5 4 3 2 1
>> y = x(2 : 2 : 8)
y =
9 7 5 3
Indici2 2+2=4 6+2=8
Elementi
4+2=6
Indice iniziale
Incremento
Indice finale
MATLAB: Array ed Introduzione alle Matrici
![Page 33: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/33.jpg)
Indicizzare un Array – 6/6• È possibile accedere a più di un elemento dell’array allavolta
>> x = 10 : -1 : 1
x =
10 9 8 7 6 5 4 3 2 1
>> y = x(2 : 2 : 8)
y =
9 7 5 3
Indici2 2+2=4 6+2=8
Elementi
4+2=6
Indice iniziale
Incremento
Indice finale
MATLAB: Array ed Introduzione alle Matrici
Array regolarmente intervallato
![Page 34: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/34.jpg)
Indicizzare un Array – 6/6
• v(:) Identifica tutti gli elementi dell’array v
• v(2:5)
• Identifica tutti gli elementi di v il cui indice è compreso tra 2 e 5
• Elementi selezionati: v(2), v(3), v(4) e v(5)
• Esempio
• v = [ 10 18 9 6 3 15 22 ]
• v(3:6) RISULTATO: 9, 3, 6, 15
MATLAB: Array ed Introduzione alle Matrici
![Page 35: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/35.jpg)
• È anche possibile cancellare più elementi dell’array
1. v = [54 19 20 12 15]
2. v(2:4) = []
3. v = [54 15]
Indicizzare un Array – 6/6
54 15
54 19 20 12 15
54 19 20 12 15
MATLAB: Array ed Introduzione alle Matrici
![Page 36: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/36.jpg)
Nota: L’aggiunta di un elemento oltre il limite di un array non è
un errore!
Indicizzare un Array – 6/6
>> x = [7 8 9];
>> x(7) = 99;
x =
7 8 9 0 0 0 99
7 8 9 0 0 0 99
1 2 3 4 5 6 7
Limite array
Zeri
MATLAB: Array ed Introduzione alle Matrici
![Page 37: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/37.jpg)
Semplici Operazioni su Array – 1/3• Tutte le operazioni che sono state applicate su variabili contenenti un solo elemento possono essere applicate agli array
>> c = 1 : 0.1 : 2
c = 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00
>> round(c)
ans = 1 1 1 1 1 2 2 2 2 2 2
>> ceil(c)
ans = 1 2 2 2 2 2 2 2 2 2 2
>> floor(c)
ans = 1 1 1 1 1 1 1 1 1 1 2
MATLAB: Array ed Introduzione alle Matrici
![Page 38: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/38.jpg)
Semplici Operazioni su Array – 1/3• Tutte le operazioni che sono state applicate su variabili contenenti un solo elemento possono essere applicate agli array
>> b = [ -1 -2 -3 3 2 1 ]
b =
-1 -2 -3 3 2 1
>> d = abs(c)
d =
1 2 3 3 2 1
MATLAB: Array ed Introduzione alle Matrici
![Page 39: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/39.jpg)
Semplici Operazioni su Array – 2/3Supponiamo di avere il seguente array x
>> x = 1 : 50;
• Trovare il valore massimo in un array>> max(x)
RISULTATO: 50
• Trovare il valore minimo in un array>> min(x)
RISULTATO: 1
• Trovare la media di un array>> mean(x)
RISULTATO: 25.500
MATLAB: Array ed Introduzione alle Matrici
![Page 40: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/40.jpg)
Semplici Operazioni su Array – 3/3• Trovare la dimensione di un array
>> x = 1 : 50;
>> size(x)
ans =
1 50
>> y = x';
>> size(y)
ans =
50 1
>> max(size(x))
ans =
50
• Trovare la lunghezza di un array
>> x = 1 : 50;
>> length(x)
ans =
50
>> y = x';
>> length(y)
ans =
50
MATLAB: Array ed Introduzione alle Matrici
![Page 41: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/41.jpg)
Semplici Operazioni su Array – 3/3• Trovare la dimensione di un array
>> x = 1 : 50;
>> size(x)
ans =
1 50
>> y = x';
>> size(y)
ans =
50 1
>> max(size(x))
ans =
50
• Trovare la lunghezza di un array
>> x = 1 : 50;
>> length(x)
ans =
50
>> y = x';
>> length(y)
ans =
50
Righe
Colonne
Righe
Colonne
MATLAB: Array ed Introduzione alle Matrici
![Page 42: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/42.jpg)
Semplici Operazioni su Array – 3/3• Trovare la dimensione di un array
>> x = 1 : 50;
>> size(x)
ans =
1 50
>> y = x';
>> size(y)
ans =
50 1
>> max(size(x))
ans =
50
• Trovare la lunghezza di un array
>> x = 1 : 50;
>> length(x)
ans =
50
>> y = x';
>> length(y)
ans =
50
Righe
Colonne
Righe
Colonne
Restituisce la dimensione massima
MATLAB: Array ed Introduzione alle Matrici
![Page 43: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/43.jpg)
Ricerca in un Array
>> x = [2 8 7 6 4 2 3];
>> find(x == 2)
ans =
1 6
>> find(x > 3)
ans =
2 3 4 5
• I valori di x che sono maggiori di 3 possono essere ottenuti
>> y = x(find(x > 3))
y =
8 7 6 4
Restituisce un array contenente gli indici di tutti i valori uguali a 2 (x == 2)
Restituisce un array contenente gli indici di tutti i valori maggiori di 3 (x > 3)
MATLAB: Array ed Introduzione alle Matrici
(indici) 1 2 3 4 5 6 7
Possiamo usare la funzione find, che restituisce indici
![Page 44: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/44.jpg)
Ricerca in un Array
>> x = [2 8 7 6 4 2 3];
>> find(x == 2)
ans =
1 6
>> find(x > 3)
ans =
2 3 4 5
• I valori di x che sono maggiori di 3 possono essere ottenuti
>> y = x(find(x > 3)) find(x > 3) [2 3 4 5] x([2 3 4 5])
y =
8 7 6 4
Restituisce un array contenente gli indici di tutti i valori uguali a 2 (x == 2)
Restituisce un array contenente gli indici di tutti i valori maggiori di 3 (x > 3)
MATLAB: Array ed Introduzione alle Matrici
(indici) 1 2 3 4 5 6 7
Possiamo usare la funzione find, che restituisce indici
![Page 45: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/45.jpg)
Unione ed Intersezione di Array• Intersezione tra due array
>> A = [ 1 2 3 ];
>> B = [ 3 4 5 ];
>> intersezione = intersect(A, B)
intersezione =
3
• Unione tra due array
>> unione = union(A, B)
unione =
1 2 3 4 5
MATLAB: Array ed Introduzione alle Matrici
![Page 46: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/46.jpg)
Operazioni Aritmetiche su Array – 1/8• Somma tra array e scalare
>> v = [ 1 2 3 ];
>> z = v + 1
z =
2 3 4
• Sottrazione tra array e scalare
>> v = [ 5 6 7 ];
>> z = v - 2
z =
3 4 5
MATLAB: Array ed Introduzione alle Matrici
![Page 47: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/47.jpg)
Operazioni Aritmetiche su Array – 2/8• Moltiplicazione e divisione tra array e scalare
>> v = [ 5 6 7 ];
>> z = v * 3
z =
15 18 21
>> v = [ 4 6 8 ];
>> z = v / 2
z =
2 3 4
MATLAB: Array ed Introduzione alle Matrici
![Page 48: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/48.jpg)
Operazioni Aritmetiche su Array – 3/8• Elevamento a potenza (scalare, elemento per elemento)
>> v = [ 5 6 7 ];
>> z = v.^2
z =
25 36 49
MATLAB: Array ed Introduzione alle Matrici
![Page 49: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/49.jpg)
Operazioni Aritmetiche su Array – 4/8• Somma tra due array
>> v = [ 5 6 7 ];
>> z = [ 2 3 4 ];
>> s = v + z
s =
7 9 11
• Funziona allo stesso modo per la sottrazione
MATLAB: Array ed Introduzione alle Matrici
![Page 50: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/50.jpg)
Operazioni Aritmetiche su Array – 5/8• Moltiplicazione tra due array
>> prezzo = [ 100 200 700 ];
>> quant = [ 2; 4; 3 ];
>> totale = prezzo * quant
totale =
3100
100 200 700
2
4
3
prezzo
quant
*
100*2 + 200*4 + 700*3
MATLAB: Array ed Introduzione alle Matrici
![Page 51: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/51.jpg)
Operazioni Aritmetiche su Array – 5/8• Moltiplicazione tra due array
>> prezzo = [ 100 200 700 ];
>> quant = [ 2; 4; 3 ];
>> totale = prezzo * quant
totale =
3100
100 200 700
2
4
3
prezzo
quant
*
ATTENZIONE: Le dimensioni degli array devono essere compatibili!
100*2 + 200*4 + 700*3
MATLAB: Array ed Introduzione alle Matrici
![Page 52: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/52.jpg)
Operazioni Aritmetiche su Array – 6/8• Moltiplicazione tra due array (elemento per elemento)
>> v = [ 9 5 8 ];
>> z = [ 3 8 4 ];
>> r = v.*z
r =
27 40 32
9 5 8v
3 8 4z
27 40 32r
.*
MATLAB: Array ed Introduzione alle Matrici
![Page 53: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/53.jpg)
Operazioni Aritmetiche su Array – 6/8• Moltiplicazione tra due array (elemento per elemento)
>> v = [ 9 5 8 ];
>> z = [ 3 8 4 ];
>> r = v.*z
r =
27 40 32
9 5 8v
3 8 4z
27 40 32r
.*
ATTENZIONE: Le dimensioni degli array devono essere compatibili!
MATLAB: Array ed Introduzione alle Matrici
![Page 54: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/54.jpg)
Operazioni Aritmetiche su Array – 7/8• Divisione tra due array (elemento per elemento)
>> v = [ 9 6 8 ];
>> z = [ 3 2 4 ];
>> r = v./z
r =
3 3 2
9 6 8v
3 2 4z
3 3 2r
./
MATLAB: Array ed Introduzione alle Matrici
![Page 55: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/55.jpg)
Operazioni Aritmetiche su Array – 8/8• Divisione tra due array (elemento per elemento)
>> v = [ 9 6 8 ];
>> z = [ 3 2 4 ];
>> r = v./z
r =
3 3 2
9 6 8v
3 2 4z
3 3 2r
./
ATTENZIONE: Le dimensioni degli array devono essere compatibili!
MATLAB: Array ed Introduzione alle Matrici
![Page 56: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array](https://reader031.vdocuments.mx/reader031/viewer/2022022723/5c693e8e09d3f27c028ccc61/html5/thumbnails/56.jpg)
Esercizi• Dato il seguente array riga
v = [ 4 7 8 9 19 24 32 1 7 9 ]
1. Calcolare la differenza tra il massimo ed il minimo
2. Definire un array w che contiene gli elementi di v,aventi indice 1, 2 e 7
3. Definire un array h che contiene l’intersezione tra v e w
4. Definire un array z che contiene tutti gli elementi di v,maggiori della media di w
MATLAB: Array ed Introduzione alle Matrici