MATLAB
Annalisa Pascarella
Cosa facciamo oggi??? Piccola introduzione a Matlab Piccola introduzione a Matlab Matrici Matrici definizione definizione operazioni operazioni Esercizi Esercizi
MATLAB MATrix LABoratory MATrix LABoratory Linguaggio di programmazione interpretato Linguaggio di programmazione interpretato legge un comando per volta eseguendolo immediatamente legge un comando per volta eseguendolo immediatamente Per avviarlo -> Per avviarlo -> icona sul desktop icona sul desktop command window
MATLAB come calcolatrice-1 è possibile definire variabili e operare su esse x = 9 -> invio invio
MATLAB come calcolatrice-2 Operatori aritmetici+, -, *, /, ^, Operatori aritmetici+, -, *, /, ^, Caratteri speciali ;, %, : Caratteri speciali ;, %, : Variabili predefinitei, pi, NaN, Inf Variabili predefinitei, pi, NaN, Inf 2/0->Inf 2/0->Inf 0/0->NaN (Not-a-Number) 0/0->NaN (Not-a-Number) Funzioni elementarisin, cos, log, exp Funzioni elementarisin, cos, log, exp Comandi speciali help, clear Comandi speciali help, clear help sqrt
Lavorare con MATLAB In MATLAB tutte le variabili sono trattate come matrici In MATLAB tutte le variabili sono trattate come matrici scalari->matrici 1 x 1 scalari->matrici 1 x 1 vettori riga->matrici 1 x n vettori riga->matrici 1 x n v = (v 1,…, v n ) v = (v 1,…, v n ) vettori colonna->matrici n x 1 vettori colonna->matrici n x 1 v = (v 1,…, v n ) T matrici-> matrici m x n matrici-> matrici m x n
Vettori Per definire un vettore riga Per definire un vettore riga Per definire un vettore colonna Per definire un vettore colonna a = [ ] o a = [1, 2, 3, 4, 5] a = [1; 2; 3; 4; 5] o a = [ ] trasposto per separare le righe
Matrici Per definire una matrice Per definire una matrice A = [3 0; 1 2] A = [ ] B = [3 0 3; 1 2 0] size(B) ->dimensioni della matrice size(B) ->dimensioni della matrice per memorizzare le dimensioni -> [r c] = size(B) per memorizzare le dimensioni -> [r c] = size(B)
Il comando : Importante per la manipolazione delle matrici Importante per la manipolazione delle matrici Esempi Esempi generazione di vettori che siano delle progressione aritmetiche di passo costante generazione di vettori che siano delle progressione aritmetiche di passo costante a = [1:10]o a = 1:10 a = [1:10]o a = 1:10 b = 1:.2 : 4 b = 1:.2 : 4 c = 3:0-> non produce niente!!!! c = 3:0-> non produce niente!!!! c = 3: -1: 1 c = 3: -1: 1 mediante : si possono estrarre righe e colonne mediante : si possono estrarre righe e colonne
Esercizio1 Costruire un vettore di 40 elementi così fatto: Costruire un vettore di 40 elementi così fatto: i primi 20 elementi sono 1,2,…,20 i primi 20 elementi sono 1,2,…,20 gli ultimi 20 20,19,…,1 gli ultimi 20 20,19,…,1 Chiamare questo vettore v Chiamare questo vettore v SOLUZIONE: SOLUZIONE: v = [1:20 20:-1:1] v = [1:20 20:-1:1]
Individuare\modificare elementi per selezionare un elemento per modificare lelemento per visualizzare B B(2,3) B(2,3) = 1;B
Estrarre sottomatrici estrarre la riga R 2 B(2,:) B(:,2:3) estrarre la colonna C 2 B(:,2) sottomatrice 2 x 2 B(:,[1 3])
Matrici diagonali costruisce anche matrici diagonali Diagonale di A d = diag(A) diag(d) a = [ 1 2 ];diag(a)
Matrici triangolari matrice triangolare inferiore -> tril(A) matrice triangolare superiore -> triu(B)
Identità-zero-uno identità di ordine n-> eye(n) eye(3) matrice nulla m x n-> zeros(m,n) zeros(2,3) matrice m x n di 1-> ones(m,n)ones(2,3)
Esercizio 2 Costruire una matrice A 3 x 7 cosi fatta: Costruire una matrice A 3 x 7 cosi fatta: la prima riga a1 = 7,6,…,1 la prima riga a1 = 7,6,…,1 la seconda riga a2 = 1,1,…,1 la seconda riga a2 = 1,1,…,1 la terza riga a3 = 0,0,…,0 la terza riga a3 = 0,0,…,0 Estrarre 2 sottomatrici: Estrarre 2 sottomatrici: una costituita dalle ultime 3 colonne una costituita dalle ultime 3 colonne una costituita dalla I e III riga e dalle colonne II e IV una costituita dalla I e III riga e dalle colonne II e IV a1 = [7:-1:1]; a2 = ones(1,7); a3 = zeros(1,7) a1 = [7:-1:1]; a2 = ones(1,7); a3 = zeros(1,7) A = [a1; a2; a3]; A = [a1; a2; a3]; B = A(:,5:7); C = A([1 3]; [2 4]) B = A(:,5:7); C = A([1 3]; [2 4])
I modo I modo II modo II modo III modo III modo Matrici a blocchi A(3,3) = 3 C = [2 3; 1 1]D = [A C] C(3:4,3:4) = eye(2)
Operazioni - 1 clear A=[1 2;3 4]; B=[1 0;-1 1]; C=[0 3 1;1 2 4]; D=[3 4 -1;5 2 3;0 1 -1];
Operazioni - somma Somma / Differenza A+B A-B A+C ??? Error using = => + Matrix dimensions must agree. Trasposta A
Operazioni - prodotto Prodotto A*B #C A = #R B Elemento per elemento A.*B size(A) = size(B) Prodotto per uno scalare A*k
Determinante Determinante det(B) det(D) 1010 Inversa inv(B) inv(D) Rango rank(D) 2 ? B^(-1)
Esercizi
Esercizi a1= [1:8]; a2=[2:2:16];a3=ones(1,8);a4=zeros(1,8); A=[a1' a2' a3' a4']; B1 = eye(3,3) B2 = zeros(3,3) B = [B1 B2] B(3,6) = 3