Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie dell Informazione via Bramante 65, 26013 Crema (CR), Italy ruggero.donida@unimi.it
Perché? MATLAB is a high-level technical computing language and interactive environment for algorithm development, data visualization, data analysis, and numeric computation. Using the MATLAB product, you can solve technical computing problems faster than with traditional programming languages, such as C, C++, and Fortran. You can use MATLAB in a wide range of applications, including signal and image processing, communications, control design, test and measurement, financial modeling and analysis, and computational biology. Add-on toolboxes (collections of special-purpose MATLAB functions, available separately) extend the MATLAB environment to solve particular classes of problems in these application areas. http://www.mathworks.com 2
Matlab desktop 3
Help Fondamentale per apprendimento, descrizione delle funzioni, esempi! 4
Vettori & matrici 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) 5
Vettori & matrici Accedere ad elementi di vettori: b = a(1); b = a([2,4,9]); b = a(3:5); a(1) = 3; a([2,4,9]) = [1,2,3]; a(3:5) = [1,2,3]; vettore di indici Numero di elementi di un vettore: numberofelements = length(array); 6
Vettori & matrici Matrici bidimensionali: i vettori sono matrici bidimensionali con una dimensione pari ad 1 (valgono le regole descritte in precedenza). Esempi A = [1, 2, 3; 4, 5, 6]; A = zeros(3); A = zeros(3,5); B = A(2,[4,9]); B = A([2,4,9]); 3X3 elementi posso usare un solo indice B = A(:, 3:5); Numero di elementi di un vettore: numberofelements = size(a); ritorna [dim1, dim2] numberofelements = size(a, NumeroDimensione); 7
Vettori & matrici Matrici Ndimensionali: l accesso agli elementi è identico ai casi precedenti; più complesse da istanziare. Esempi A = []; 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,:); 8
Operatori fondamentali 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 9
Operatori condizionali if a==b else end switch a end case {'linear','bilinear'}. case 'cubic' otherwise while a==b end for i = 1 : N end for i = 1 : 3 : N end 10
File e dati Formato file:.m = sorgenti;.mat = dati; Salvare e caricare dati in formato Matlab save(nomefile, var1, var2 ); load(nomefile); Salvare e caricare dati con formattazione desiderata fopen, fscanf, fprintf, etc. 11
Altre nozioni importanti Script o funzioni? function [s, m] = sommamoltiplica(v1, v2); [s, m] = sommamoltiplica(2, 3); Comandi utili close all clear all clc chiude tutte le finestre plot elimina i dati dallo workspace pulisce consolle 12
Testuale fprintf() Visualizzazione risultati Grafica 1d plot() plotyy() bar() Grafica 2d imshow() image() imagesc() Grafica 3d plot3() surf() mesh() 13
Usare HELP Istruzioni per gestire i plot Comandi utili figure subplot(2) subplot(2,3) hold on hold off crea una figura vuota inserisce 2 grafici nella stessa figura inserisce 2X3 grafici nella stessa figura abilita la sovrascrittura di un grafico 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. 14
Esercizi 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 15
Esercizi 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 16