Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione...
Transcript of Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione...
![Page 1: Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione a... · Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie](https://reader031.fdocuments.us/reader031/viewer/2022013114/5c693e8e09d3f27c028ccc88/html5/thumbnails/1.jpg)
Introduzione a Matlab
Ruggero Donida Labati
Dipartimento di Tecnologie dell’Informazionevia Bramante 65, 26013 Crema (CR), Italy
![Page 2: Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione a... · Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie](https://reader031.fdocuments.us/reader031/viewer/2022013114/5c693e8e09d3f27c028ccc88/html5/thumbnails/2.jpg)
Perché?
2
MATLAB® is a high-level technical computing language and interactiveenvironment for algorithm development, data visualization, dataanalysis, and numeric computation. Using the MATLAB product, you cansolve technical computing problems faster than with traditionalprogramming languages, such as C, C++, and Fortran.
You can use MATLAB in a wide range of applications, including signal andimage processing, communications, control design, test andmeasurement, financial modeling and analysis, and computationalbiology. Add-on toolboxes (collections of special-purpose MATLABfunctions, available separately) extend the MATLAB environment tosolve particular classes of problems in these application areas.
http://www.mathworks.com© Ruggero Donida Labati 2010
![Page 3: Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione a... · Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie](https://reader031.fdocuments.us/reader031/viewer/2022013114/5c693e8e09d3f27c028ccc88/html5/thumbnails/3.jpg)
Matlab desktop
3© Ruggero Donida Labati 2010
![Page 4: Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione a... · Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie](https://reader031.fdocuments.us/reader031/viewer/2022013114/5c693e8e09d3f27c028ccc88/html5/thumbnails/4.jpg)
Help
4
Fondamentale per apprendimento, descrizione delle funzioni, esempi…!
© Ruggero Donida Labati 2010
![Page 5: Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione a... · Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie](https://reader031.fdocuments.us/reader031/viewer/2022013114/5c693e8e09d3f27c028ccc88/html5/thumbnails/5.jpg)
Vettori & matrici
5
Instanziare vettori:a = [];a = [1, 2, 3];a = [1; 2; 3];a = 1:3;a = zeros(1,3);a = zeros(3,1);a = ones(1,3);a = ones(3,1);a = ones(1,3) * 10;a = ones(3,1) * 10;a = b; (b vettore)
© Ruggero Donida Labati 2010
![Page 6: Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione a... · Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie](https://reader031.fdocuments.us/reader031/viewer/2022013114/5c693e8e09d3f27c028ccc88/html5/thumbnails/6.jpg)
Vettori & matrici
6
Accedere ad elementi di vettori:b = a(1);b = a([2,4,9]); vettore di indicib = a(3:5);a(1) = 3;a([2,4,9]) = [1,2,3];a(3:5) = [1,2,3];
Numero di elementi di un vettore:numberOfElements = length(array);
© Ruggero Donida Labati 2010
![Page 7: Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione a... · Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie](https://reader031.fdocuments.us/reader031/viewer/2022013114/5c693e8e09d3f27c028ccc88/html5/thumbnails/7.jpg)
Vettori & matrici
7
Matrici bidimensionali:i vettori sono matrici bidimensionali con una dimensione pari ad 1(valgono le regole descritte in precedenza).
EsempiA = [1, 2, 3; 4, 5, 6];A = zeros(3); 3X3 elementiA = zeros(3,5);B = A(2,[4,9]);B = A([2,4,9]); posso usare un solo indiceB = A(:, 3:5);
Numero di elementi di un vettore:numberOfElements = size(A); ritorna [dim1, dim2]numberOfElements = size(A, NumeroDimensione);
© Ruggero Donida Labati 2010
![Page 8: Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione a... · Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie](https://reader031.fdocuments.us/reader031/viewer/2022013114/5c693e8e09d3f27c028ccc88/html5/thumbnails/8.jpg)
Vettori & matrici
8
Matrici Ndimensionali:l’accesso agli elementi è identico ai casi precedenti;più complesse da istanziare.
EsempiA = [];B1 = zeros(5,2);B2= zeros(5,2);A(:,:,1) = B1;A(:,:,2) = B2;c = A(1,2,1);c = A(1,2,:);D = A(:,2,:);
© Ruggero Donida Labati 2010
![Page 9: Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione a... · Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie](https://reader031.fdocuments.us/reader031/viewer/2022013114/5c693e8e09d3f27c028ccc88/html5/thumbnails/9.jpg)
Operatori fondamentali
9
Operatori aritmetici:+ addizione- sottrazione* moltiplicazione .* elemento per elemento/ divisione a destra ./ elemento per elemento^ elevamento a potenza .^ singoli elementi\ divisione a sinistra
Operatori logici:& and | or~ not
Operatori relazionali:~ = diverso <= minore uguale< minore >=maggiore uguale> maggiore ==uguale logico
© Ruggero Donida Labati 2010
![Page 10: Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione a... · Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie](https://reader031.fdocuments.us/reader031/viewer/2022013114/5c693e8e09d3f27c028ccc88/html5/thumbnails/10.jpg)
Operatori condizionali
10
if a==b…
else…
end
switch acase {'linear','bilinear'}
….case 'cubic'
…otherwise
…end
while a==b…
end
for i = 1 : N…
end
for i = 1 : 3 : N…
end
© Ruggero Donida Labati 2010
![Page 11: Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione a... · Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie](https://reader031.fdocuments.us/reader031/viewer/2022013114/5c693e8e09d3f27c028ccc88/html5/thumbnails/11.jpg)
File e dati
11© Ruggero Donida Labati 2010
Formato file:.m = sorgenti;.mat = dati;
Salvare e caricare dati in formato Matlabsave(nomeFile, ‘var1’, ‘var2’);load(nomeFile);
Salvare e caricare dati con formattazione desideratafopen, fscanf, fprintf, etc.
![Page 12: Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione a... · Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie](https://reader031.fdocuments.us/reader031/viewer/2022013114/5c693e8e09d3f27c028ccc88/html5/thumbnails/12.jpg)
Altre nozioni importanti
12© Ruggero Donida Labati 2010
Script o funzioni?function [s, m] = sommaMoltiplica(v1, v2);[s, m] = sommaMoltiplica(2, 3);
Comandi utiliclose all chiude tutte le finestre plotclear all elimina i dati dallo workspaceclc pulisce consolle
![Page 13: Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione a... · Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie](https://reader031.fdocuments.us/reader031/viewer/2022013114/5c693e8e09d3f27c028ccc88/html5/thumbnails/13.jpg)
Visualizzazione risultati
13© Ruggero Donida Labati 2010
Testualefprintf()
Grafica 1dplot() plotyy() bar() …
Grafica 2dimshow() image() imagesc() …
Grafica 3dplot3() surf() mesh() …
![Page 14: Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione a... · Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie](https://reader031.fdocuments.us/reader031/viewer/2022013114/5c693e8e09d3f27c028ccc88/html5/thumbnails/14.jpg)
Istruzioni per gestire i plot
14© Ruggero Donida Labati 2010
Usare HELP
Comandi utilifigure crea una figura vuotasubplot(2) inserisce 2 grafici nella stessa figurasubplot(2,3) inserisce 2X3 grafici nella stessa figurahold on abilita la sovrascrittura di un graficohold off disabilita la sovrascrittura di un grafico
N.B. se esiste una figura con un grafico e richiamiamo plot() senza istanziare una nuova figura, il nuovo grafico sostituirà quello della figura aperta.
![Page 15: Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione a... · Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie](https://reader031.fdocuments.us/reader031/viewer/2022013114/5c693e8e09d3f27c028ccc88/html5/thumbnails/15.jpg)
Esercizi
15
Creare a vector composed by theese elements•2, 4, 6, 8•1, 1/2, 1/3, 1/4, 1/5
Given the array A = [ 2 4 1 ; 6 7 2 ; 3 5 9], provide the commands needed to•assign the first row of A to a vector called x1•assign the last 2 rows of A to an array called y•compute the sum over the columns of A
Given the vector x = [1 8 3 9 0 1], create a short set of commands that will •add up the values of the elements (Check with sum.)•computes the running sum (for element j, the running sum is the sum of the elements from 1 to j, inclusive. Check with cumsum.)• computes the sine of the given x-values (should be a vector)
http://www.facstaff.bucknell.edu/maneval/help211/exercises.html
© Ruggero Donida Labati 2010
![Page 16: Introduzione a Matlab - homes.di.unimi.ithomes.di.unimi.it/piuri/pages/didattica/SI/mat/Introduzione a... · Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie](https://reader031.fdocuments.us/reader031/viewer/2022013114/5c693e8e09d3f27c028ccc88/html5/thumbnails/16.jpg)
Esercizi
16© Ruggero Donida Labati 2010
Dato x=1:30, plottare le funzioni seno di x e coseno di x•in due finestre differenti•in due metà della medesima finestra•nella stessa finestra con colori e tratti differenti e visualizzando una legenda
Tutti i grafici ottenuti devono avere titolo e nomi degli assi cartesiani