Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Conoscenza di base per Matlab
Laboratorio di Programmazione IICorso di Laurea in Bioinformatica
Dipartimento di Informatica - Università di Verona
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Sommario
Introduzione
Operazioni Fondamentali
Cicli
Script e Funzioni
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Introduzione
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Introduzione Matlab
Concetti di base
Matlab (MATrix LABoratory) programma interattivo percalcolo numerico
Linguaggio interpretato
Ambiti applicativi principali:
Matematica ApplicataAnalisi di SegnaliControlli AutomaticiVisione Arti�ciale
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Utilizzo Matlab
Ambiente integrato di programmazione
Applicativo che mette a disposizione una interfaccia gra�cainterattiva
Prompt di comandi che interpreta ed esegue le istruzioni
Altre �nestre di utilita', e.g.
Browser per la directory correnteStoria dei comandi...
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Help in linea
Help di matlab
guida per l'utilizzo dei comandi molto completa ed e�cace
help comando per avere una spiegazione sul modo diutilizzo di un comando
Manuale di uso per avere una visione di insieme(disponibile in locale o on-line)
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Dichiarazioni di Variabili
Variabili in Matlab
non si dichiara il tipo delle variabili
� a=5 scalare� b = [4 5] vettore riga� c = [4 ; 5] vettore colonna� m = [1,0; 0,1] matrice 2 × 2
la , (oppure lo spazio) separa tra elementi, il ; separa trarighe
matlab stampa sempre il risultato di un operazione(eccezione: l'operazione e' seguita dal punto e virgola)
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Lo spazio di lavoro
Workspace
I cambiamenti alle variabili vengono registrati e mantenutinello spazio di lavoro
Comandi per gestire lo spazio di lavoro
� who visualizza tutte le variabili� whos visualizza tutte le variabili e la loro dimensione� clear var cancella la variabile var� clear cancella tutte le variabili
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Operazioni Fondamentali
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Operazioni Matriciali
Operazioni di base su matici
Somma C = A+ B C (i , j) = A(i , j) + B(i , j)
Moltiplicazione A ∗ B C (i , j) =∑
k A(i , k) ∗ B(k , j)Divisione C = A/B C = A ∗ B−1
Elevamento a potenza C = A3 C = A ∗ A ∗ ALe operazioni sono de�nite solo se le matrici hannodimensioni compatibili
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Operazioni Elemento per elemento
Operazioni di base sugli elementi
Somma C = A. ∗ B C (i , j) = A(i , j) ∗ B(i , j)Moltiplicazione A./B C (i , j) = A(i , j)/B(i , j)
Divisione C = A/B C = A ∗ B−1
Elevamento a potenza C = A3 C (i , j) = A(i , j)3
Anche in questo caso, le operazioni sono de�nite solo se lematrici hanno dimensioni compatibili
In particolare per ∗ e / A e B debbono avere le stessedimensioni
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Manipolare Vettori e Matrici
De�nizioni di vettori
De�nizione vettori equispaziati
x = [ inizio : passo : �ne] de�nisce un vettore da inizio a�ne con elementi equispaziati da passo
oppure x = linspace(inizio,�ne,N) de�nisce N elementiequispaziati da inizio a �ne
� x = [10:1:30]
� x = linspace(10,30,20)
I vettori in Matlab partono dall'indice 1 (non zero come inJava)
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Estrazioni di sottomatrici
Sottomatrici
Data una matrice A n ×m
A(i,j) estrae l'elemento in posizione i,j
A(:,j) estrae il vettore colonna [A1,j , · · · ,An,j ]
A(1:4,j) estrae il vettore colonna [A1,j , · · · ,A4,j ]
A(i,:) estrae il vettore riga [Ai ,1, · · · ,Ai ,m]
A(1:2,2:4) estrae la sottomatrice[A1,2,A1,3,A1,4;A2,2,A2,3,A2,4]
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Matrici notevoli
Costruzione di matrici notevoli
A = eye(n) n = scalare; matrice identita' n*n
A = diag(v) v = vettore; matrice diagonale con diagonalepari al vettore v
A = zeros(n,m) vettore di zeri con n righe e m colonne
A = ones(n,m) vettore di elementi pari ad 1 con n righe em colonne
A = rand(n,m) vettore di elementi randomici (tra (0,1))con n righe e m colonne
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Estrazione Massimo
Massimo di un vettore
max(z) con z vettore; restituisce il massimo in z
max(M) con M matrice n×m; restituisce un vettore 1×m
in cui ciascuna colonna e' il massimo elemento dellacolonna nella matrice M
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Istruzioni di controllo
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Istuzioni di controllo
Istruzioni di controllo per Matlab
Matlab mette a disposizione acluni cicli di controllo while,for e istruzioni condizionali if
For: sintassi
for i = inizio:passo:fine
sequenza istruzioni
end
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Esempio for
Example (calcolo somma elementi in un vettore)
sum = 0
for i = 1:1:n
sum = sum + x(i)
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Esempio while
Example (calcolo somma elementi in un vettore)
s = 0
i = 0
while i <= size(x,2)
i = i+1
s = s + x(i)
end
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Istuzioni condizionali
Istruzioni if
Istruzione condizionali if
if (r >= 0)
radice = sqrt(r)
end
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Esempio if
Example (get di un elemento controllato)
riga = i; col = j;
if (i <= 0 | i > size(x,1))
if (i<=0)
riga = 1
else
riga = size(x,1)
end
end
if (j <= 0 | j > size(x,1))
if (j<=0)
col = 1
else
col = size(x,1)
end
end
v = x(riga,col);
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Script e Funzioni
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Script e Funzioni
Script e Funzioni
Matlab permettere di de�nire �le di script e funzioni
File di script: sequenze di istruzioni raccolte in un �le
Il �le deve avere estensione .m
Per eseguire uno script basta scrivere da linea di comandoil nome del �le
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Funzioni
Funzioni
Funzioni: sequenze di istruzioni salvate in un �le per cuipossiamo de�nire variabili di input e variabili di output
Rispetto agli script cambia l'intestazione del �le e lachiusura: return
function [y z] = f(x,k)
x,k parametriy,z valori di ritorno
Per eseguire una funzione la si deve invocare da linea dicomando con i parametri opportuni
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Funzioni II
Funzioni II
Tutte le variabili dichiarate all'interno di una funzione sonolocali
Possiamo inserire dei commenti nelle funzioni utilizzando%
I commenti vengono visualizzati quando si usa l'help per lafunzione
Conoscenza
di base per
Matlab
Introduzione
Operazioni
Fondamen-
tali
Istruzioni di
controllo
Script e
Funzioni
Esercizi
Esercizi basi matlab
Implementare le funzioni
1 �iph.m Valido per il progetto2 �ipv.m Valido per il progetto3 select.m4 collate.m
come descritto nel commento dei rispettivi �le
veri�care il corretto funzionamento delle funzioni
1 utilizzare il comando x = rand(n,m) per creare matrici dinumeri randomici
2 utilizzare il comando x = imread('trees.tif') per utilizzareuna matrice che rappresenta i livelli di grigio dell'immaginetrees.tif. utilizzare imshow(x) per viasualizzare l'immaginerelativa alla matrice x Valido per il progetto