clear all; close all; %%%%%%%%%%%%%%%%%%%%%%%%%% % Crea matrici e vettori %%%%%%%%%%%%%%%%%%%%%%%%%% % Vettore riga v1 = [1 7 3 9] % Vettore colonna v2 = [1; 7; 3; 9] % Crea matrice A 3 x 5 con il seguente contenuto: % 1 2 3 4 5 % 6 7 8 9 10 % 11 12 13 14 15 A = [1 2 3 4 5; 6 7 8 9 10; 11 12 13 14 15] % Crea matrice A 3 x 3 con il seguente contenuto: % 1 2 3 % 4 5 6 % 7 8 9 B = [1 2 3; 4 5 6; 7 8 9] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Unisci matrici e vettori per % comporre un'unica matrice %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Composizione per riga % Dati due vettori riga, questi vengono 'impilati' % l'uno sull'altro per formare una matrice 2 x 4. v1 = [1 3 5 7] v2 = [2 4 8 10] m1 = [v1; v2] % Composizione per colonna % Dati due vettori colonna vengono affiancati % per formare una matrice 4 x 2. v3 = [1; 2; 3; 4] v4 = [5; 6; 6; 8] m1 = [v1 v2] %%%%%%%%%%%%%%%%%%%%% % Matrici standard %%%%%%%%%%%%%%%%%%%%% % Matrice 4 x 4 di tutti 0 zeros(4) % Matrice 2 x 3 di tutti 0 zeros(2,3) % Vettore colonna di 5 elementi tutti 0 zeros(5,1) % Vettore riga di 5 elementi tutti 0 zeros(1,5) % Matrice 4 x 4 di tutti 1 ones(4) % Matrice 4 x 4 di tutti 2 2*ones(4) % Matrice 4 x 4 di tutti pi-greco pi*ones(4) % Matrice identita' 4 x 4 % (detta anche matrice identica) eye(4) % Matrice 4 x 4 di valori casuali % uniformemente distribuiti fra 0 e 1 rand(4) % Matrice 2 x 4 5i valori casuali % uniformemente distribuiti fra 0 e 1 rand(2,5) % Matrice 4 x 4 di valori casuali % normalmente distribuiti con media 0 e % deviazione standard 1 randn(4) % Matrice 4 x 4 di valori casuali % normalmente distribuiti con media 2 e % deviazione standard 3 2+3*randn(4) % Vettore di valori che vanno da 1 a 13 % a passo 1 v = [1:13] % Vettore di valori che vanno da 3 a 21 % a passo 2 v = [3:2:21] % Vettore di valori che vanno da 13 a 1 % in ordine decrescente (cioe' a passo -1) v = [13:-1:1] % Crea una matrice diagonale con i valori % di contenuti in un vettore v v = [1 -2 3 -4 5]; diag(v) % Altro modo per creare matrice identita' diag(ones(5,1)) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Operazioni sulle matrici %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Calcola numero di righe e colonne di A % e poni questi valori nelle variabili r e c A = [1 2 3 4 5; 6 7 8 9 10; 11 12 13 14 15] [r,c]=size(A) % Calcola il determinante della matrice quadrata B B = [-1 0 1; 2 2 3; -1 -5 2] det(B) % Calcola autovalori D e autovettori V della % matrice quadrata B [V, D] = eig(B) % Trasposta di una matrice C = A' C = transpose(A) % Esegui il prodotto fra matrici A*B e B*A % A*B da errore perche' non e' possibile moltiplicare % una matrice 3 x 5 con una 3 x 3 % C = A*B % B*A e' invece possibile C = B*A % Prodotto tra matrici elemento per elemento % (detto anche prodotto di Hadamard) % Consideriamo due matrici C1 e C2 C1 = [-1 -2 -3; 4 5 6; -7 -8 -9] C2 = [1 2 1; -2 3 2; 3 -4 3] % Moltiplichiamole elemento per elemento C1.*C2 % Dividiamole elemento per elemento C1./C2 % Eleva al quadrato ogni singolo elemento di C1 C1.^2 % Calcola il quadrato della matrice C1, % cioe' calcola il prodotto matriciale C1*C1 C1^2 % Calcola il logaritmo di ciascun elemento della matrice log(C2) % Da non confondere con la funzione logaritmo di una matrice! logm(C2) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Un po' di grafici... %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Genera un vettore X di N valori casuali % uniformemente distribuiti sull'intervallo [0,1] % Genera due grafici: uno che rappresenta la sequenza % di valori ed uno che traccia l'istogramma N = 10000; X = rand(N,1); figure(1); plot([1:N], X) figure(2); hist(X,100) % Calcoliamo media e deviazione standard di X mean(X) std(X) % Genera un vettore Y di N valori casuali % distribuiti come una normale di media 0 e % scarto quadratico 1 % Genera due grafici: uno che rappresenta la sequenza % di valori ed uno che traccia l'istogramma Y = randn(N,1); figure(3) % Suddividi l'area grafica in due zone: una sopra ed una sotto subplot(2,1,1) hist(X,100) subplot(2,1,2) hist(Y,100) % Suddividi l'area grafica in due zone: una a sx ed una a dx figure(4) subplot(1,2,1) hist(X,100) subplot(1,2,2) hist(Y,100) % Traccia il grafico della funzione y=sin(x)/x % sull'intervallo [-2',20] % Genera il vettore x x = [-20:.1:20]; % Genera il corrispondente vettore y y = sin(x)./x; % Traccia il grafico con differenti tipi di linea % e colori figure(5) subplot(2,2,1) plot(x,y) subplot(2,2,2) plot(x,y,'--') subplot(2,2,3) plot(x,y,'r--') subplot(2,2,4) plot(x,y,'gx')