DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio –...
-
Upload
santuzza-carboni -
Category
Documents
-
view
223 -
download
1
Transcript of DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio –...
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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Lab 4: ObiettiviLab 4: Obiettivi
Introduzione a Matlab/Octave
array e matriciinserimento dati
costrutti condizionalistampa a video
2
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
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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Screenshot dellScreenshot dell’’interfaccia interfaccia OCTAVEOCTAVE
Linea di comando dell’interprete
5
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
GUI di OctaveGUI di Octave
6
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
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
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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Problema: crea matriciProblema: crea matrici
• Si crei una matrice di dimensione 3x3 di valori non necessariemente tutti nulli
10
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Crea matrici - SoluzioneCrea matrici - Soluzione
matrix = [1 2 3 ; 4 5 6; 7 8 9]
11
matrix = magic (100)
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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Accesso ai dati - Accesso ai dati - SoluzioneSoluzione
13
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
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
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
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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Scalari Vs Array - Scalari Vs Array - SoluzioneSoluzionevet = [1 2 3];vet = .^2
18
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Curiosità: cosa succede con Curiosità: cosa succede con il .il .
19
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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Sottoarray - SoluzioneSottoarray - Soluzione
21
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!!!
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
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
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
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
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
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
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
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
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
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
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
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
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));
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