56
Fondamenti di Informatica MATLAB: Array ed Introduzione alle Matrici Prof. Raffaele Pizzolante A.A. 2016/17

Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array

Embed Size (px)

Citation preview

Page 1: Fondamenti di Informatica - INTRANET · MATLAB: Array ed Introduzione alle Matrici OUTLINE •Operazioni su Variabili •Introduzione alle Matrici •Array in MATLAB •Indici Array

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

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

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

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

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

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

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

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

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

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

(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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• È 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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