DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio –...

36
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Lab 5 – Info B Marco D. Santambrogio – [email protected] Riccardo Cattaneo – [email protected] Ver. aggiornata al 9 Agosto 2013

Transcript of DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio –...

Page 1: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 5 – Info B Lab 5 – Info B

Marco D. Santambrogio – [email protected] Cattaneo – [email protected]

Ver. aggiornata al 9 Agosto 2013

Page 2: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 4: ObiettiviLab 4: Obiettivi

Introduzione a Matlab/Octave

array e matriciinserimento dati

costrutti condizionalistampa a video

2

Page 3: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

MatlabMatlab

• Cos’è Matlab:• strumento (e corrispondente linguaggio) per elaborazioni di calcolo numerico

• NB: sta per MATrix LABoratory» centrato sulle matrici (ma include generiche

funzionalità matematiche)

• usato nei successivi corsi di calcolo numerico• MATLAB è uno strumento commerciale

distribuito, su licenza NON gratuita, da “The MathWorks Inc”• Student edition disponibile quando si è al Politecnico (http://www.asi.polimi.it/software/matlab.html)

Esiste un altro strumento di nome Octave• identico nella concezione, molto simile per gli aspetti operativi

• disponibile gratuitamente, vedi www.gnu.org/software/octave/

3

Page 4: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

- 4 -

Screenshot interfaccia Screenshot interfaccia MATLABMATLAB

- - 44 - -

Contenuto della directory corrente

Storia dei comandi

Finestra dei comandi

Lancia i tool di MATLAB ed altro…

Mostra le variabili nel workspace

4

Page 5: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Screenshot dellScreenshot dell’’interfaccia interfaccia OCTAVEOCTAVE

Linea di comando dell’interprete

5

Page 6: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

GUI di OctaveGUI di Octave

6

Page 7: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 4: AgendaLab 4: Agenda

• Esercizi Lab4 Warm Up (50’)

• Crea matrici Accesso ai dati di un array Scalari Vs Array Sottoarray

Qualche cosa un pò più divertente (85’) Tabelline Funzione interne

Altri exe… (105’) Stampa a video Disegno “fisica”, con problema da risolvere Cambio base

7

Page 8: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Alcuni Alcuni

• HELP comando: mostra a video il manuale di utilizzo di uno specifico comando.

• X': traspone la vettore (da vettore riga a vettore colonna e viceversa)

• LENGTH(X): ritorna la lunghezza di un vettore

• SUM(X): calcola la somma di tutti gli elementi di un vettore

• MEAN(X): calcola il valore media dei valore contenuti in un vettore

• MEDIAN(X): ritorna il mediano tra i valore contenuti in un vettore

• ABS(X): valore assoluto

• EVAL(stringa): esegue il contenuto della stringa come fossero comandi di uno script (potete utilizzarlo nell'esercizio 6 per ricevere anche la funzione che volete integrale)

8

Page 9: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 4: Prima parteLab 4: Prima parte

• Esercizi Lab4 Warm Up (50’)

Crea matrici Accesso ai dati di un array Scalari Vs Array Sottoarray

Qualche cosa un pò più divertente (85’)

Altri exe… (105’)

9

Page 10: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Problema: crea matriciProblema: crea matrici

• Si crei una matrice di dimensione 3x3 di valori non necessariemente tutti nulli

10

Page 11: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Crea matrici - SoluzioneCrea matrici - Soluzione

matrix = [1 2 3 ; 4 5 6; 7 8 9]

11

matrix = magic (100)

Page 12: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Problema: accesso ai datiProblema: accesso ai dati

• Si crei una matrice 4x4 di valori non necessariamente nulli

• Si indichi il valore nella posizione (2,2)

12

Page 13: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Accesso ai dati - Accesso ai dati - SoluzioneSoluzione

13

Page 14: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Curiosità…Curiosità…

• Si può accedere a un array a più dimensioni come se ne avesse una sola

• Usando un unico indice si segue l’ordine della memorizzazione

• Da NON usare nella programmazione ma aiuta a capire certi costrutti....

14

Page 15: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Array: memorizzazioneArray: memorizzazione

• Matrici memorizzate per colonna: colonna 1, poi colonna 2, 3, etc.

ogni colonna memorizzata per indici di riga crescenti

• Array memorizzati in forma lineare nella RAM variando più velocemente i primi indici più lentamente quelli successivi

• NB: opposto a quanto avviene in C

1 2

3 4

5 6

...

1

3

5

2

4

6

...

15

Page 16: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Operazioni con scalari e Operazioni con scalari e array array

• Operazioni per gli scalari: + - * / ^ • Operazioni per gli array

Array operation: eseguita sugli elementi corrispondenti degli array coinvolti (devono avere lo stesso numero di righe e colonne); si indica aggiungendo un punto prima dell’operatore aritmetico

a= b= a .* b=

Matrix operation: segue le regole dell’algebra lineare (esempio: prodotto righe per colonne)

a= b= a*b =

1 23 4

2 35 7

2 615 28

1 23 4

2 35 7

12 1726 37

k kjikij baba **

Elevamento a potenza

16

Page 17: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Problema: Scalari Vs Problema: Scalari Vs ArrayArray• Dato un vettore di 3 elementi

• vet = [1 2 3]

• Si calcoli l’elevamento a potenza di ogni elemento (risp: 1 4 9)

17

Page 18: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Scalari Vs Array - Scalari Vs Array - SoluzioneSoluzionevet = [1 2 3];vet = .^2

18

Page 19: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Curiosità: cosa succede con Curiosità: cosa succede con il .il .

19

Page 20: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Problema: SottoarrayProblema: Sottoarray

• Dato una matrice temp

• Si sostituisca la seconda riga con:

-1 -2 -3• E la quarta riga con: -4 -5 -6

20

Page 21: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Sottoarray - SoluzioneSottoarray - Soluzione

21

Page 22: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Nota sui sottoarrayNota sui sottoarray

22

Perchè: temp(2:2:4, :)…e non temp(2:4, :)?

Perchè temp(2:4, :) sono le righe 2, 3 e 4!!!

Page 23: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Altri esempi…Altri esempi…

m = 9 8 7 6 5 4 3 2 1 0 11 12 0 0 0>> m([1 4], [2 3])ans = 8 7 11 12>> m(1:2:5, 1:end)ans = 9 8 7 3 2 1 0 0 0>>>> m(1:2:5, :)ans = 9 8 7 3 2 1 0 0 0>> m(2:2:4, :) = [-1 -2 -3; -4 -5 -6];>> mm = 9 8 7 -1 -2 -3 3 2 1 -4 -5 -6 0 0 0>>

tutti gli elementi sulle righe 1 e 4 e sulle colonne 2 e 3

tutti gli elementi delle righe 1, 3 e 5

notazione ‘:’ abbreviata per 1:end, cioè tutti i valori di quell’indice

uso della notazione dei sottoarray per individuare elementi oggetto di

assegnamento

23

Page 24: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 4: AgendaLab 4: Agenda

• Esercizi Lab4 Warm Up (50’)

Qualche cosa un pò più divertente (85’) Tabelline Funzione interne

Altri exe… (105’)

24

Page 25: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Problema: TabellineProblema: Tabelline

• Stampare a video la tabellina della moltiplicazione (da 1 a 10) per un numero inserito dall'utente

25

Page 26: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Tabelline - SoluzioneTabelline - Soluzione

vet=[1:10];c=3;c*vet

E le tabelline da 1 a 10?vet=[1:10];vet2=vet’;vet2*vet

26

Page 27: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Problema: funzioni Problema: funzioni interneinterne

• Ricevere un vettore è calcolare la somma, la media e il mediano usando per media e mediano sia i comandi integrati (MEAN e MEDIAN) che non.

27

Page 28: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Funzioni Funzioni interneinterne - - SoluzioneSoluzione

%Senza MEAN e MEDIAN

v=input('Vector ');disp(sum(v));disp(sum(v)/length(v));diff=abs(v-(sum(v)/length(v)));[w, p]=min(diff);v(p);

28

Page 29: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 4: Terza ParteLab 4: Terza Parte

• Esercizi Lab4 Warm Up (50’) Qualche cosa un pò più divertente (85’)

Altri exe… (105’) Stampa a video Disegno “fisica”, con problema da risolvere

Cambio base

29

Page 30: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Problema: Stampa a videoProblema: Stampa a video

• Disegnare a video la seguente funzione definita a tratti: y=x (se x>=0 and x<=5) y=2*x (se x>5 and x<=10) y=-x (x>10 and x<=20)

30

Page 31: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Stampa a video - Stampa a video - SoluzioneSoluzionestep=0.01;x=[0:step:5];y=x;plot(x,y);hold on;x=[5:step:10];y=2.*x;plot(x,y);x=[10:step:20];y=-1.*x;plot(x,y);

31

Page 32: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Problema: Disegno Problema: Disegno “fisica”“fisica”

• Disegnare la “gittata” di un corpo che cade da 100m di altezza quando lanciato orizzontalmente con un velocità a vostro piacimento Quanto tempo impiega a cadere a terra?

Quanto si sposta in orizzontale prima di cadere a terra?

32

Page 33: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Disegno Disegno ““fisicafisica””- - SoluzioneSoluzionestep=0.01;v=8.9;t=[0:step:100];y=(100-9.8.*(t.^2));x=(v.*t);y1=abs(y);[w, p]=min(y1);disp('Time:');disp(t(p));disp('Distance:');disp(x(p));plot(x,y);

33

Page 34: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Problema: Cambio baseProblema: Cambio base

• Ricevere un vettore che rappresenti le singole cifre di un numero in base 2 stampare a video il valore in base 10

34

Page 35: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Cambio base - SoluzioneCambio base - Soluzione

35

v=input('Vector: ');esp=[length(v)-1:-1:0];basi=2.^esp;disp(sum(v.*basi));

Page 36: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Fonti per lo studio + Fonti per lo studio + CreditsCredits• Fonti per lo studio

Introduzione alla programmazione in MATLAB, A.Campi, E.Di Nitto, D.Loiacono, A.Morzenti, P.Spoletini, Ed.Esculapio•Capitolo 1

• Credits Prof. A. Morzenti Emanuele Panigati https://sites.google.com/site/engpanigati/

36