DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Lab 5 – Info B
Marco D. Santambrogio – [email protected]
Matteo Ferroni – [email protected]
Ver. aggiornata al 24 Agosto 2015
Calendario dei Labs: MATLAB
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 15 Dicembre 2015, 10.30am-12.30pm, @ LM1
 MATLAB: Ambienti di sviluppo e primi codici
• 12 Gennaio 2016, 10.30am-12.30pm, @ LM1
 MATLAB: strutture di controllo, tipi di dato strutturato, e
vettori
• 19 Gennaio 2016, 10.30am-12.30pm, @ LM1
 MATLAB: funzioni ricorsive
• 26 Gennaio 2016, 10.30am-12.30pm, @ LM1
 MATLAB: funzioni ricorsive, funzioni di ordine superiore,
grafici 2D e 3D
2
Calendario dei Labs: MATLAB
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 15 Dicembre 2015, 10.30am-12.30pm, @ LM1
 MATLAB: Ambienti di sviluppo e primi codici
• 12 Gennaio 2016, 10.30am-12.30pm, @ LM1
 MATLAB: strutture di controllo, tipi di dato strutturato, e
vettori
• 19 Gennaio 2016, 10.30am-12.30pm, @ LM1
 MATLAB: funzioni ricorsive
• 26 Gennaio 2016, 10.30am-12.30pm, @ LM1
 MATLAB: funzioni ricorsive, funzioni di ordine superiore,
grafici 2D e 3D
3
Lab 5: Obiettivi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Introduzione a Matlab/Octave
array e matrici
inserimento dati
costrutti condizionali
stampa a video
4
Lab 5: Agenda
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Esercizi Lab5
 Warm Up (50’)
•



Crea matrici
Accesso ai dati di un array
Scalari Vs Array
Sottoarray
 Qualche cosa un pò più divertente (60’)
 Tabelline
 Funzione interne
 Per casa… (60’)
 Disegno “fisica”, con problema da risolvere
 Rilievi altimetrici
5
Alcuni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•
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)
6
Lab 5: Prima parte
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Esercizi Lab5
 Warm Up (50’)
 Crea matrici
 Accesso ai dati di un array
 Scalari Vs Array
 Sottoarray
 Qualche cosa un pò più divertente (60’)
 Per casa… (60’)
7
Problema: crea matrici
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Si crei una matrice di dimensione 3x3 di
valori non necessariemente tutti nulli
8
Crea matrici - Soluzione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
matrix = [1 2 3 ; 4 5 6; 7 8 9]
E se fosse stata 100 x 100???
matrix = magic (100)
9
Problema: accesso ai dati
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Si crei una matrice 4x4 di valori non
necessariamente nulli
• Si indichi il valore nella posizione (2,2)
10
Accesso ai dati - Soluzione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
11
Problema: Scalari Vs Array
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Dato un vettore di 3 elementi
• vet = [1 2 3]
• Si calcoli l’elevamento a potenza di ogni
elemento (risp: 1 4 9)
12
Scalari Vs Array - Soluzione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
vet = [1 2 3];
vet = .^2
13
Curiosità: cosa succede con il .
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
14
Problema: Sottoarray
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Dato una matrice temp
• Si sostituisca la seconda riga con:
-1 -2 -3
• E la quarta riga con:
-4 -5 -6
15
Sottoarray - Soluzione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
16
Nota sui sottoarray
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Perchè: temp(2:2:4, :)…
e non temp(2:4, :)?
Perchè temp(2:4, :) sono
le righe 2, 3 e 4!!!
17
Lab 5: Agenda
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Esercizi Lab5
 Warm Up (50’)
 Qualche cosa un pò più divertente (60’)
 Tabelline
 Funzione interne
 Per casa… (60’)
18
Problema: Tabelline
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Stampare a video la tabellina della
moltiplicazione (da 1 a 10) per un
numero inserito dall'utente
19
Tabelline - Soluzione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
vet=[1:10];
c=3;
c*vet
E le tabelline da 1 a 10?
vet=[1:10];
vet2=vet’;
vet2*vet
20
Problema: funzioni interne
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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.
21
Funzioni interne - Soluzione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
%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);
22
Lab 5: Agenda
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Esercizi Lab5
 Warm Up (50’)
 Qualche cosa un pò più divertente (60’)
 Per casa… (60’)
 Disegno “fisica”, con problema da risolvere
 Rilievi altimetrici
23
Problema: Disegno “fisica”
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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?
24
Disegno “fisica”- Soluzione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
step=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);
25
Esercizio: Rilievi altimetrici
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Si sviluppi un programma in matlab che
acquisisce da tastiera i dati relativi a
rilievi altimetrici e stampa a video
l’altitudine media di tutti quelli che
hanno latitudine compresa tra 10 e 80 e
longitudine tra 30 e 60
26
Soluzione (1ma parte): rilievi altimetrici
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
more = input('vuoi inserire valori altimetrici? (s/n)');
ii=1;
while more=='s'
arch(ii).altitudine = input('altitudine ');
arch(ii).longitudine = input('longitudine ');
arch(ii).latitudine = input('latitudine ');
ii = ii+1;
more = input('vuoi inserire altri valori altimetrici? (s/n)');
end
27
Soluzione (2nda parte): rilievi altimetrici
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
jj=1;
for ii=1:length(arch)
%attenzione: la condizione deve essere scritta sulla stessa
linea…
if arch(ii).latitudine>=10&&arch(ii).latitudine<=80 &&
arch(ii).longitudine>=30&&arch(ii).longitudine<=60
elemSelez(jj) = arch(ii).altitudine;
jj=jj+1;
end
end
disp(['la media degli elementi selezionati e` '
num2str(mean(elemSelez))]);
28
Fonti per lo studio + Credits
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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/
29
Scarica

MATLAB - Dipartimento di Elettronica ed informazione