strumentazione biomedica 2 introduzione a matlab
TRANSCRIPT
![Page 1: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/1.jpg)
Strumentazione Biomedica 2 Introduzione a MatLab
![Page 2: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/2.jpg)
DEI - Univ. Padova (Italia)
Cos’è MatLab
MatLab = Matrix Laboratory
Utilizza come elemento base le matrici:
Una matrice NxM indica una matrice con N righe ed M colonne
Matlab consente:
L’accesso ad un ambiente di calcolo L’utilizzo di funzioni specializzate La programmazione
![Page 3: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/3.jpg)
DEI - Univ. Padova (Italia)
Perchè MatLab
• Facilità d’uso:– Ha moltissime funzioni disponibili– E’ possibile programmare funzioni ad hoc– Non ci si deve preoccupare di programmazione
a basso livello
• Esportabilità– Le funzioni MatLab sono file di testo
![Page 4: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/4.jpg)
DEI - Univ. Padova (Italia)
La Command Window
Spazio di lavoroPannelli ausiliari
![Page 5: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/5.jpg)
DEI - Univ. Padova (Italia)
Command Window come console
L’uso interattivo della command window è spesso poco conveniente e noioso:
è difficile trovare gli errori,
per ripetere le operazioni bisogna riscrivere tutto ogni volta
![Page 6: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/6.jpg)
DEI - Univ. Padova (Italia)
Operazioni di assegnazione
>> a=18
a =
18
>>
Alla variabile “a” è assegnato il valore 18
Matlab fa eco del risultato della operazione
Il prompt segnala che Matlab è pronto perun’altra operazione
>> a=18;>>
Terminando una operazione con “;” Matlabnon fa eco.
![Page 7: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/7.jpg)
DEI - Univ. Padova (Italia)
Osservazioni
• Matlab è case-sensitive
• I nomi di variabili non possono cominciare con numeri
• I nomi di variabili non possono contenere spazi
• I nomi di variabili non possono contenere caratteri speciali
![Page 8: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/8.jpg)
DEI - Univ. Padova (Italia)
Creazione di matrici
>> A = [1 2 3; 4 5 6; 7 8 9]
Delimititatore di matriceDelimititatore di riga
>> A = [...1 2 34 5 67 8 9 ]
Entrambi i comandi creano la stessa matrice 3x3
![Page 9: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/9.jpg)
DEI - Univ. Padova (Italia)
Accedere agli elementi delle matrici
>> A = [...1 2 34 5 67 8 9 ];
>> A(2,1)
ans =
4
>> A(2)
ans =
4
Per accedere ad elementi di una matricesi usano le parentesi tonde
Un elemento è identificato dalla sua posizione (riga,colonna),
oppure dal suo indice, contando gli elementi della matrice per colonna
![Page 10: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/10.jpg)
DEI - Univ. Padova (Italia)
Sottomatrici
A =[
1 2 3 4 5 6 7 8 9 10 11 12]
Per accedere ad un elemento:x=A(3,4) assegnera’ 12
Per accedere ad un’intera riga,x=A(2,:) restituira’ [5 6 7 8]
Per accedere ad un’intera colonna,x=A(:,3) restituira’ [3 7 11]’
Per accedere ad una sottomatrice, ad es.la 2X2 in basso a destrax=A(2:3,3:4) restituira’ [7 8
11 12]
![Page 11: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/11.jpg)
DEI - Univ. Padova (Italia)
Dimensioni delle variabili
Vettorilength(X) restituisce la lunghezza del vettore X
o il numero di colonne di X
Matrici[M,N]=size(X) righe e colonne della matrice Xsize(X,1) numero di righe della matrice Xsize(X,2) numero di colonne della matrice X
![Page 12: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/12.jpg)
DEI - Univ. Padova (Italia)
Tipi di variabili
• Matrici e vettori
• Caratteri e Stringhe
• Record
• Celle
![Page 13: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/13.jpg)
DEI - Univ. Padova (Italia)
Stringhe
Le stringhe sono delimitate dal singolo apice
>> str='Introduzione a Matlab'
str =
Introduzione a Matlab
>>
![Page 14: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/14.jpg)
DEI - Univ. Padova (Italia)
Formattazione di stringhe
s = sprintf(stringa formattata,A,...)
Esempi:
sprintf('%0.5g',(1+sqrt(5))/2) 1.618sprintf('%0.5g',1/eps) 4.5036e+15 sprintf('%15.5f',1/eps) 4503599627370496.00000sprintf('%d',round(pi)) 3sprintf('%s','hello') hellosprintf('The array is %dx%d.',2,3) The array is 2x3
![Page 15: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/15.jpg)
DEI - Univ. Padova (Italia)
Conversione di stringhe
Conversione di numeri in stringhe
>>val=67;>>str=num2str(val);
int2str Convert integer to string.mat2str Convert matrix to string.num2str Convert number to string.sprintf Convert number to string under format control.sscanf Convert string to number under format controlstr2double Convert string to double-precision value.str2num Convert string to number.
![Page 16: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/16.jpg)
DEI - Univ. Padova (Italia)
Record
>> libro(1).posizione=1;>> libro(1).titolo='The Lords of the Rings';>> libro(1).autore='JRR Tolkien';>> libro(2).posizione=10;>> libro(2).titolo='Godel, Hescher, Bach';>> libro(2).autore='DJ Hopfstaedter';>> libro(2)
ans =
posizione: 10 titolo: 'Godel, Hescher, Bach' autore: 'DJ Hofstaedter'
>>
![Page 17: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/17.jpg)
DEI - Univ. Padova (Italia)
Celle
E’ possibile costruire vettori e matrici di elementi di dimensioni diverse
fname'
ans =
'c2d.m' 'acker.m' 'append.m' 'augstate.m' 'balreal.m' 'bode.m'
>> fname{2}
ans =
acker.m
Dall’array di celle si può accedere agli elementi
![Page 18: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/18.jpg)
DEI - Univ. Padova (Italia)
Gestione dello spazio di lavoro
who produce la lista delle variabili nel workspace
whos la lista contiene informazioni su tipo e dimensioni
clear elimina tutte le variabili nel workspace
clear <nomevariabile> cancella solo la variabile con nome nomevariabile
![Page 19: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/19.jpg)
DEI - Univ. Padova (Italia)
Salvataggio e Caricamento
save <nomefile> salva nel file nomefile.mat tutte le variabili del workspace
load < nomefile > carica nel workspace tutte le variabili presenti in nomefile.mat
save < nomefile > < nomevar > salva nel file nomefile.mat le variabili in nomevar
load < nomefile > < nomevar > carica nel workspace le variabili nomevar del file nomefile.mat
Osservazioni:con l’opzione –ASCII i comandi precedenti leggono/salvano file di testo
è possibile utilizzare la forma funzionale s=load(nomefile);
![Page 20: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/20.jpg)
DEI - Univ. Padova (Italia)
Richiamare i comandi: limitare la fatica inutile
>> <FrecciaSu>,<FrecciaGiu> Richiama i comandi già dati dalla Command Window
>> test + <FrecciaSu>,<FrecciaGiu> Richiama i comandi già dati dalla Command Window che cominciano con test
![Page 21: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/21.jpg)
DEI - Univ. Padova (Italia)
Help di Matlab
![Page 22: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/22.jpg)
DEI - Univ. Padova (Italia)
Help di Matlab
>> help NomeComando Help in linea per il comando NomeComando
>> help min MIN Smallest component. For vectors, MIN(X) is the smallest element in X. For matrices, MIN(X) is a row vector containing the minimum element from each column. For N-D arrays, MIN(X) operates along the first non-singleton dimension. [Y,I] = MIN(X) returns the indices of the minimum values in vector I. If the values along the first non-singleton dimension contain more than one minimal element, the index of the first one is returned. MIN(X,Y) returns an array the same size as X and Y with the smallest elements taken from X or Y. Either one can be a scalar. [Y,I] = MIN(X,[],DIM) operates along the dimension DIM. When complex, the magnitude MIN(ABS(X)) is used, and the angle ANGLE(X) is ignored. NaN's are ignored when computing the minimum. Example: If X = [2 8 4 then min(X,[],1) is [2 3 4], 7 3 9] …
>>
![Page 23: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/23.jpg)
DEI - Univ. Padova (Italia)
... e quando non si sa che pesci pigliare
>> lookfor NomeComando Ricerca in tutto l’help in linea la parola NomeComando
>> lookfor meanRETmeandir.m: % Compute the mean direction of the barycenters distant between 20 andMEAN Average or mean value.LMS Construct a least mean square (LMS) adaptive algorithm object. EQ_GETOPT Computes Equalizer coefficients that minimizes the Mean SquareGWNOISE generate valid mean value, standard deviation and seeds for GWNOISE block. DSPBLKMEAN Signal Processing Blockset Mean block helper function. DSPBLKMEAN2 Signal Processing Blockset Mean block helper function.MEAN2 Compute mean of matrix elements.ipexhistology.m: %% Color-Based Segmentation Using K-Means ClusteringDMAE Mean absolute error performance derivative function.DMSE Mean squared error performance derivatives function.DMSEREG Mean squared error w/reg performance derivative function.MAE Mean absolute error performance function.MSE Mean squared error performance function.
……
![Page 24: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/24.jpg)
DEI - Univ. Padova (Italia)
Matrici notevoli
A=eye(10) matrice identità 10x10
A=zeros(3,5) matrice 3x5 con elementi tutti nulli
A=ones(3,5) matrice 3x5 con elementi tutti pari a 1
A=diag([3, 5, 6]) matrice 3x3, con elementi sulla diagonale specificati
![Page 25: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/25.jpg)
DEI - Univ. Padova (Italia)
Costruzione di vettori e matrici
>> x=0:2.5:10x =
0 2.5000 5.0000 7.5000 10.0000>>
Vettori e Matrici con elementi equispaziati
x = linspace(Min, Max, N)
x = logspace(Min, Max, N)
Conoscendo il numero di elementi necessari N
![Page 26: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/26.jpg)
DEI - Univ. Padova (Italia)
Variabili casuali
X=rand(N,M) matrice NxM con elementi casuali distribuiti unif. in [0,1]
X=randn(N,M) matrice NxM con elementi casuali distribuiti gauss. come Ν(0, 1)
Sfruttando trasformazioni di variabili aleatorie, è possibile ottenere vettori con valori distribuiti variamente
X=1-2*rand(N,M) matrice NxM con elementi casuali distribuiti unif. in [-1,1]
X=2+5*randn(N,M) matrice NxM con elementi casuali distribuiti gauss. come Ν(2, 5)
X=exp(randn(N,M)) matrice NxM con elementi casuali distribuiti come lognormale
![Page 27: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/27.jpg)
DEI - Univ. Padova (Italia)
Operazioni aritmetiche: scalari e matrici
>> a=2*eye(2)a =2 00 2
>> a=ones(2,3);>> b=2*ones(2,3);>> a+bans =3 3 33 3 3
Le operazioni di matrici e vettori con scalari sono gestite da Matlab in maniera intuitiva
![Page 28: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/28.jpg)
DEI - Univ. Padova (Italia)
Operazioni aritmetiche: matrici e vettori
Attenzione:quando si opera su matrici e vettori le dimensioni devono essere compatibili!
>> X=[1:3;1:3]X = 1 2 3 1 2 3Y=ones(2,3)Y = 1 1 1 1 1 1>> X*Y??? Error using ==> mtimesInner matrix dimensions must agree.>>
![Page 29: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/29.jpg)
DEI - Univ. Padova (Italia)
Operazioni aritmetiche: matrici e vettori
>> X*Y'ans = 6 6 6 6
>> W=[4,5,6]W = 4 5 6
>> X*W'ans = 32 32
Moltiplicazione di due matrici
Moltiplicazione matrice-vettore
![Page 30: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/30.jpg)
DEI - Univ. Padova (Italia)
Operazioni aritmetiche: elemento per elemento
Le operazioni aritmetiche operano sulle matrici:
A*BA/B =A*B-1 A\B =A-1*BA^2 =A2 =A*A
E’ possibile compiere le operazioni elemento per elemento
C=A.*B Cij =Aij*Bij
C=A.*B Cij =Aij*Bij
C=A.^2 Cij=Aij2
In tal caso le matrici devono avere dimensione uguale!
![Page 31: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/31.jpg)
DEI - Univ. Padova (Italia)
Potenza e inversa
Data una matrice quadrata X, è possibile calcolare le sue potenze:
>>Xp=X^p;
e la sua inversa:
>>Xi=inv(X);
![Page 32: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/32.jpg)
DEI - Univ. Padova (Italia)
Autovalori ed autovettori
Data una matrice X quadrata, gli autovalori ed autovettori sono tali che:X*V = V*D
se V è la matrice doiagonale con gli autovalori di X sulla diagonalee D è la matrice le cui colonne corrispondono agli autovettori di X
[V,D]=eig(X);
![Page 33: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/33.jpg)
DEI - Univ. Padova (Italia)
Statistiche
max(x), min(x):mean(x),median(x),var(x),std(x):prctile(x,p);
>> X=randn(3,3)X = -0.4326 0.2877 1.1892 -1.6656 -1.1465 -0.0376 0.1253 1.1909 0.3273>> max(X)ans = 0.1253 1.1909 1.1892>>
![Page 34: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/34.jpg)
DEI - Univ. Padova (Italia)
Funzioni su matrici
sum(x): somma gli elementi di x (per colonne se x è matrice).
prod(x): esegue il prodotto degli elementi di x (per colonne se x è matrice).
diff(x): calcola le differenze [x(2)-x(1), x(3)-x(2), … , x(n)-x(n-1)].
det(X) : determinante di X.
rank(X) : rango di X.
trace(X): traccia di X.
poly(X) : polinomio caratteristico di X.
norm(X, p): norma p di X (matrice o vettore che sia)
![Page 35: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/35.jpg)
DEI - Univ. Padova (Italia)
Funzioni di matrici
In generale le funzioni di Matlab operano sulle matrici elemento per elemento
X=pi-2*pi*rand(2,4)X = 0.5925 -2.6195 -2.4734 0.9245 -2.7361 0.5638 2.7779 -1.9677>> sin(X)ans =
0.5584 -0.4987 -0.6196 0.7983 -0.3944 0.5344 0.3558 -0.9223>>
![Page 36: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/36.jpg)
DEI - Univ. Padova (Italia)
Matrici multidimensionali
Le matrici di Matlab possono avere qualsiasi dimensione:
>>X=ones(3,5,2) è una matrice 3x5x2
>>X=pi-2*pi*rand(2,3,3)X(:,:,1) = -1.0144 0.1934 -3.0683 1.3546 2.7346 -0.5202
X(:,:,2) = 0.4807 1.0433 1.7219 -0.0975 0.4216 -0.5014
X(:,:,3) = -1.6359 -0.8830 0.7551 -0.1874 1.8280 -1.7802>>
![Page 37: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/37.jpg)
DEI - Univ. Padova (Italia)
Campionare spazi multidimensionali
>>[xmat,ymat]=meshgrid(-2:2,-2:2)
xmat = -2 -1 0 1 2 -2 -1 0 1 2 -2 -1 0 1 2 -2 -1 0 1 2 -2 -1 0 1 2
ymat = -2 -2 -2 -2 -2 -1 -1 -1 -1 -1 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2>>
![Page 38: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/38.jpg)
DEI - Univ. Padova (Italia)
Funzioni di più variabili
Funzione di una variabile:>>t=0:0.1:pi;>>x=t.^2;
Funzione di due variabili:>> [xmat,ymat]=meshgrid(0:0.1:pi,0:0.1:pi);>>zmat=xmat.^2+ymat.^2;
![Page 39: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/39.jpg)
DEI - Univ. Padova (Italia)
Operatori logici
Gli operatori logici più comuni sono:
& and logico| or logico~ notlogico
>> a=[0,1,0,3];>> b=[1,1,0,3];
>> a | bans = 1 1 0 1
>> a & bans = 0 1 0 1
>> ~bans = 0 0 1 0
![Page 40: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/40.jpg)
DEI - Univ. Padova (Italia)
Operatori relazionali
Gli operatori relazionali più comuni sono:
== uguale~= diverso da< minore di<= minore o uguale
>> a=[0,1,2,3];>> b=[1,1,3,3];>> a>bans = 0 0 0 0>> b>aans = 1 0 1 0>>
![Page 41: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/41.jpg)
DEI - Univ. Padova (Italia)
Ricerca di elementi
indice = find(expr);[riga, colonna] = find (expr);
X=pi-2*pi*rand(3,3)X = -0.9016 -1.4240 1.4580 1.1307 0.5532 0.3775 -2.8909 -1.5367 -2.7230
>> n=find(X>0)n =
2 5 7 8>> [r,c]=find(X>0)r = 2 2 1 2c = 1 2 3 3
![Page 42: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/42.jpg)
DEI - Univ. Padova (Italia)
m-files
Sequenza di comandi scritta in un file di testo con estensione ‘m’
m-files
Per eseguire un m-file basta digitare il suo nome nella command window e premere invio
![Page 43: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/43.jpg)
DEI - Univ. Padova (Italia)
m-files: vantaggi
Poter ripeter in maniera semplice una lunga lista di comandi
Eseguire la stessa sequanza di comandi su dati diversi
Esportare sequanze di comandi su altre macchine o per altri utenti
Tenere traccia di ciò che si è fatto
![Page 44: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/44.jpg)
DEI - Univ. Padova (Italia)
Tipi di m-files: scripts
Gli scripts sono sequenze di comandi:
Tutte la variabili ed i parametri utilizzati devono essere:
Presenti nel workspace
Creati all’interno della sequenza
File prova.m:
str1=‘questa è una stringa ’;str2= ‘di prova’;disp([str,str2])
>> prova.mquesta è una stringa di prova>>
![Page 45: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/45.jpg)
DEI - Univ. Padova (Italia)
Tipi di m-files: funzioni
Sono files di comandi con argomenti in entrata e in uscita.
Tutte le variabili ed i parametri utilizzati da una funzione devono essere:
Passati come argomenti
Creati all’interno della sequenza
![Page 46: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/46.jpg)
DEI - Univ. Padova (Italia)
Tipi di m-files: funzioni
File prova.m:
function str=DispStr(str1,str2);
str1=‘questa è una stringa ’;str2= ‘di prova’;str=[str1,str2];disp(str)
>> str1='questa è una stringa ';>> str2='di prova';>> str=DispStr(str1,str2)str =
questa è una stringa di prova>>
![Page 47: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/47.jpg)
DEI - Univ. Padova (Italia)
Cosa si sta eseguendo? which
Nel caso si abbiano risultati inaspettati, Può essere utile calcolare quale funzione si stia eseguendo:
>> which meanC:\Progra~1\matlabR12\toolbox\matlab\datafun\mean.m>>
![Page 48: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/48.jpg)
DEI - Univ. Padova (Italia)
Commenti
E’ buona abitudine di programmazione sia negli scripts che nelle functions inserire dei commenti
•I commenti sono segnalati da %:
•Le prime righe di commento di uno script o di una function diventano parte dello help online
![Page 49: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/49.jpg)
DEI - Univ. Padova (Italia)
Cicli condizionali: for
for variabile = espressioneistruzioniEnd
Esempio: calcolo di 10!s=0;for i=1:10,
s=s*i;end
L’indentazione aiuta la leggibiltà dei
programmi
![Page 50: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/50.jpg)
DEI - Univ. Padova (Italia)
Cicli condizionali: while
while (espressione),istruzioni
end
Esempio: calcolo di 10!s=0;i=1;while(i<=10),
s=s*i;end
![Page 51: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/51.jpg)
DEI - Univ. Padova (Italia)
Strutture condizionali: if ... else
Struttura:if espressione
istruzionielseif espressione
istruzionielse
istruzioniend
Esempio: if(sole==TRUE & lezione==FALSE)
mare=TRUE;elseif(lezione==TRUE & interesse==0)
mare=TRUE;else
mare=FALSE;end
![Page 52: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/52.jpg)
DEI - Univ. Padova (Italia)
Strutture condizionali: switch ... case
Struttura:switch variabile
case v1,istruzione
case v2,istruzione
...otherwise
istruzioneend
Esempio: condizione:=sole+2*lezione+4*interesse;switch(condizione)
case 0,mare=0;
case 1,mare=1;
case 2, mare=0;
...end
![Page 53: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/53.jpg)
DEI - Univ. Padova (Italia)
Plot
>> t=0:0.01:5;>> plot(t,exp(-t).*cos(4*t));
![Page 54: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/54.jpg)
DEI - Univ. Padova (Italia)
Sovrapposizione di grafici
>> t=0:0.01:5;>> plot(t,exp(-t).*cos(4*t));>> hold on;>> plot(t,exp(-t),'r');
![Page 55: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/55.jpg)
DEI - Univ. Padova (Italia)
Riquadri
L’istruzione subplot(M,N,K) crea una figura contenente M*N riquadri, distribuiti su M righe ed N colonne. L’indice K indica il plot attivo.
>> subplot(2,1,2); plot(t,exp(-t).*cos(4*t));>> subplot(2,2,1); plot(t,exp(-t));>> subplot(2,2,2); plot(t,cos(4*t));>>
![Page 56: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/56.jpg)
DEI - Univ. Padova (Italia)
Visualizzazione di immagini
Ogni matrice può essere intesa come una immagine e viceversa:
>> X=127+20*randn(20,20);>> imagesc(X)
>> imshow(X/255)
![Page 57: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/57.jpg)
DEI - Univ. Padova (Italia)
La mappa dei colori
Con il comando colormap è possibile cambiare il modo in cui ad ogni valore di una matrice è assegnato un colore
colormap(jet)
colormap(bone)
colormap(cool)
![Page 58: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/58.jpg)
DEI - Univ. Padova (Italia)
Visualizzazione: grafici ed immagini
x
y
x
y
![Page 59: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/59.jpg)
DEI - Univ. Padova (Italia)
Visualizzare grafici ed immagini
>> imagesc(X)>> colormap(gray)>> hold on>> plot(5,10,'*r')
![Page 60: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/60.jpg)
DEI - Univ. Padova (Italia)
Formattazione dei grafici: editor interattivo
![Page 61: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/61.jpg)
DEI - Univ. Padova (Italia)
Formattazione dei grafici: editor interattivo
![Page 62: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/62.jpg)
DEI - Univ. Padova (Italia)
Handle di un oggetto
Ogni oggetto disegnato ha delle sue proprietà.Per accedervi bisogna conoscere a quale ogetto ci si vuole riferire:
handle
>> h(1)=imagesc(X);>> h(2)=plot(5,10,'*r');
![Page 63: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/63.jpg)
DEI - Univ. Padova (Italia)
Formattazione dei grafici: riga di comando
>> get(h)Color = [1 0 0]EraseMode = normalLineStyle = noneLineWidth = [0.5]Marker = *MarkerSize = [6]MarkerEdgeColor = autoMarkerFaceColor = noneXData = [5]YData = [10]ZData = []......>>
![Page 64: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/64.jpg)
DEI - Univ. Padova (Italia)
Formattazione dei grafici: riga di comando
>> set(h(2),'MarkerSize',24,'LineWidth',3)
![Page 65: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/65.jpg)
DEI - Univ. Padova (Italia)
Funzioni che agiscono su funzioni
![Page 66: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/66.jpg)
DEI - Univ. Padova (Italia)
Soluzione di equazioni differenziali
Funzioni che hanno come argomento una funzione:
Integrazione
Riceca di zeri
Ricerca di minimi
Integrazione numerica
Soluzione numerica di equazioni differenziali
![Page 67: Strumentazione Biomedica 2 Introduzione a MatLab](https://reader035.vdocuments.net/reader035/viewer/2022081505/5542eb57497959361e8c1858/html5/thumbnails/67.jpg)
DEI - Univ. Padova (Italia)
Ricerca di zeri
>> q=fzero('cos(4*x)',pi/4)
q =
0.3927
function y=prova(x)
y=cos(4*x);
>> q=fzero(@prova,pi/4)
q =
0.3927