Introduzione a Matlab Renato Mainetti
Matlab questo sconosciuto (abbreviazione di Matrix Laboratory) Cos è? E un ambiente (software) nato per il calcolo numerico e l'analisi statistica. A cosa serve? Permette di eseguire calcoli matematici, simulazioni, analisi dei dati, visualizzazione di grafici e sviluppo di algoritmi. Cosa ci faremo? Useremo alcune funzioni di base e alcuni tool-box per avvicinarci al mondo dell IA. Come scaricarlo e usarlo anche a casa? Studenti UNIMI hanno la possibilità di scaricarlo e installarlo su un PC per uso personale. http://www.unimi.it/ateneo/80207.htm guida per installazione Introduzione a Matlab - Lezione 1 2
Matlab, come si presenta: Grafici, toolbox, etc Mostra i file e i folder della cartella corrente Preview, dettagli del file selezionato Usata per: svolgere calcoli, inserire variabili, eseguire programmi Variabili dichiarate Storia dei comandi eseguiti Introduzione a Matlab - Lezione 1 3
Help: F1 - sempre al vostro servizio Introduzione a Matlab - Lezione 1 4
Qualche esempio: Inserire comandi -> cursore a fianco del >> Somma-Differenza-Prodotto-Divisione-Exp(+ - * / ^) ; soppressione output, operazioni in sequenza sulla stessa riga per continuare su nuova riga un operazione lunga ans -> variabile in cui si memorizza esito operazione clc -> cancella Command Window Introduzione a Matlab - Lezione 1 5
Formato dei risultati Il risultato delle operazioni eseguite può essere visualizzato in diversi formati. N.B: il valore calcolato non viene approssimato in funzione del formato di visualizzazione. Proviamo i vari comandi: (es. format short e) short (e-g) long (e-g) bank compact loose Introduzione a Matlab - Lezione 1 6
Funzioni matematiche Built-in: Le funzioni accettano sia valori che variabili. Radice Quadrata -> sqrt(val) Radice Ennesima -> nthroot(val,val) Esponenziale (e x ) -> exp(val) Valore assoluto -> abs(val) Logaritmo naturale -> log(val) Logaritmo base 10 -> log10(val) Fattoriale (n!) -> factorial(val) Introduzione a Matlab - Lezione 1 7
Funzioni trogonometriche: Seno di x in radianti -> sin(x) Seno di x in gradi -> sind(x) Coseno di x in radianti -> cos(x) Coseno di x in gradi -> cosd(x) Uguale anche per tangente(tan) e cotangente(cotan) Le funzioni trigonometriche inverse sono asin, acos, atan etc. Introduzione a Matlab - Lezione 1 8
Funzioni di approssimazione: Che approssimazioni otteniamo usando questi programmi? round(x) fix(x) ceil(x) floor(x) Rem(x,y) Sign(x) Introduzione a Matlab - Lezione 1 9
Esercizio Radici di un equazione di secondo grado: x = b ± b2 4ac 2a Introduzione a Matlab - Lezione 1 10
Cos è una variabile? Una variabile è una zona di memoria identificata attraverso un nome(combinazione lettere e digit) in cui è possibile memorizzare delle informazioni (numeri, array, oggetti). Introduzione a Matlab - Lezione 1 11
Assegnamento di una variabile In matlab l operatore di assegnamento è = Per creare una variabile eseguirò da riga di comando: >> var1 = 10 Posso assegnare anche una formula: >> var2 = (3-1)*5 + var1 La variabile, una volta assegnata compare nel Workspace. E ora possibile richiamare il valore contenuto nella variabile, utilizzandola in formule e programmi. Introduzione a Matlab - Lezione 1 12
Regole da seguire per i nomi: Deve iniziare con una lettera Può contenere massimo 63 caratteri Può contenere lettere, digit e underscore Non può contenere punteggiatura., ; etc. Matlab è case sensitive: a A Non è possibile inserire spazi Evitare l uso di variabili built-in (es. sin, cos, pi, etc.) Impossibile usare parole chiave riservate a matlab (provare a digitare: iskeyword) Introduzione a Matlab - Lezione 1 13
Comandi utili per gestire le variabili: clear -> cancella tutte le variabili del workspace clear x -> cancella la variabile x se presente who -> mostra una lista di tutte le variabili whos -> lista di tutte le variabili con dimensione, spazio occupato in memoria e informazione sulla loro classe Introduzione a Matlab - Lezione 1 14
Quando la command line non ci basta più: Script file overview: La command window ci permette di eseguire solo uno o pochi comandi per volta. Ad ogni pressione di enter, vengono eseguiti solo i comandi specificati. Pensiamo ora ad un calcolo che dobbiamo eseguire, composto da 20 comandi in sequenza(programma). All esecuzione del 19 comando ci accorgiamo che il 1 era sbagliato. Cosa dobbiamo fare? Lo script file (m-file) ci viene in aiuto. Permette infatti di inserire diversi comandi, senza obbligarci ad eseguirli immediatamente. Introduzione a Matlab - Lezione 1 15
Note sugli script file(m-file) La sequenza delle operazione del programma viene eseguita dalla prima all ultima. Se un comando del programma genera output e non termina con il ; l output sarà visualizzato nella command window Risulta molto conveniente usarli perché permettono di editare un programma e rieseguirlo svariate volte. Si chiamano m-files perché vengono salvati con l estensione.m Introduzione a Matlab - Lezione 1 16
Esempio di creazione esecuzione script Creazione: Introduzione a Matlab - Lezione 1 17
Esempio di creazione esecuzione script Creazione: disp('questo è il nostro primo script in Matlab') disp('di solito però si inizia con "Hello World!"') a = input('inserisci un numero da elevare al quadrato: '); b = a*a; disp(['il risultato è: ' num2str(b)]) N.B: Se non conosciamo un comando, possiamo usare help. Esempio: >> help input Introduzione a Matlab - Lezione 1 18
Esempio di creazione esecuzione script Esecuzione: >> firstscript Questo è il nostro primo script in Matlab Di solito però si inizia con "Hello World!" Inserisci un numero da elevare al quadrato: 3 Il risultato è: 9 N.B: Verificare il folder attuale, se siamo nel folder dove è contenuto il file.m è possibile usare la funzione di autocompletamento. (tab) Introduzione a Matlab - Lezione 1 19
Un problema di prova Scriviamo uno script che calcoli l area di un triangolo, avendo base(3) e altezza(2) noti. Introduzione a Matlab - Lezione 1 20
Un problema di prova Soluzione: b = 3; h = 2; A = (b*h)/2; Introduzione a Matlab - Lezione 1 21
Altro problema Proviamo ora a scrivere uno script che richieda l inserimento di 3 variabili, restituisca poi la somma delle prime due diviso per la terza. Introduzione a Matlab - Lezione 1 22
E se usassimo una funzione invece di uno Script? Una funzione può ricevere dei dati in ingresso e restituirne in uscita. E più flessibile Una funzione è composta da: Function a = triarea(b,h) input Parola chiave output Nome funzione Introduzione a Matlab - Lezione 1 23
La funzione: function a = triarea(b,h) a = (b*h)/2; Può essere richiamata da riga di comando: >> A = triarea(5,6); N.B: Attraverso i commenti nella funzione è possibile scrivere la documentazione che viene mostrata attraverso il comando help Introduzione a Matlab - Lezione 1 24
Salviamo il WorkSpace Può capitare di aver eseguito diverse operazioni e aver creato e memorizzato un elevato numero di variabili. Se spegniamo matlab senza salvare il workspace queste informazioni però vanno perse. Per salvare il workspace corrente: Viene generato un file.mat Introduzione a Matlab - Lezione 1 25