DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – [email protected] Riccardo Cattaneo – [email protected] Ver. aggiornata al 7 Dicembre2013 Calendario dei Labs DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 7 Gennaio 2014, 10am-12.45pm, @ LM1 MATLAB: strutture di controllo, tipi di dato strutturato, e vettori • 14 Gennaio 2014, 10am-12.45pm, @ LM1 MATLAB: funzioni ricorsive • 21 Gennaio 2014, 10am-12.45pm, @ LM1 MATLAB: funzioni ricorsive, funzioni di ordine superiore, grafici 2D e 3D 2 Lab 4: Obiettivi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Introduzione a Matlab/Octave array e matrici inserimento dati costrutti condizionali stampa a video 3 Lab 4: Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Esercizi Lab4 Warm Up (40’) • Crea matrici Accesso ai dati di un array Scalari Vs Array Sottoarray Qualche cosa un pò più divertente (70’) Tabelline Funzione interne Disegno “fisica”, con problema da risolvere 4 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) 5 Lab 4: Prima parte DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Esercizi Lab4 Warm Up (40’) Crea matrici Accesso ai dati di un array Scalari Vs Array Sottoarray Qualche cosa un pò più divertente (70’) 6 Problema: crea matrici DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si crei una matrice di dimensione 3x3 di valori non necessariemente tutti nulli 7 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) 8 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) 9 Accesso ai dati - Soluzione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10 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) 11 Scalari Vs Array - Soluzione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE vet = [1 2 3]; vet = .^2 12 Curiosità: cosa succede con il . DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 13 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 14 Sottoarray - Soluzione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 15 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!!! 16 Lab 4: Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Esercizi Lab4 Warm Up (40’) Qualche cosa un pò più divertente (70’) Tabelline Funzione interne Disegno “fisica”, con problema da risolvere 17 Problema: Tabelline DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Stampare a video la tabellina della moltiplicazione (da 1 a 10) per un numero inserito dall'utente 18 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 19 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. 20 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); 21 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? 22 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); 23 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/ 24