Esercitazione 1 - Introduzione Matlab
MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente editor
Matrici MATLAB tratta tutte le variabili come matrici I vettori sono forme speciali di matrici con una sola riga o colonna Gli scalari sono trattati come vettori con una sola riga e una sola colonna v_riga = [1 2 3]; v_colonna = [1; 2; 3]; matrice = [1 2 3; 4 5 6; 7 8 9];
Istruzioni frequenti clear all clc close all % commento % per un codice più ordinato... help ; F9 CTRL invio ; F9 CTRL invio
Help Contentsgetting started Matrices and arrays Expressions Working with matrices Generating matrices More about Linear algebra Arrays Graphics (per approfondire sui grafici) Using basic plotting functions Printable documentation
Operatori Addizione (+)a + b Sottrazione (-) a - b Assegnamento (=)a = b Potenze (^ o.^) a^b o a.^b Moltiplicazione (* o.*) a*b o a.*b Divisione (/ o./) a/b o a./b A = B = A * B = A.* B = Trasposizione (‘)a’
Estrazione di sotto-matrici A =A (:,:) = A (:,1) = A (1,:) =1 2 3 A (3,2) = 4A (6) = 4 A(1) A(1,1) A(4) A(1,2) A(7) A(1,3) A(2) A(2,1) A(5) A(2,2) A(8) A(2,3) A(3) A(3,1) A(6) A(3,2) A(9) A(3,3) A(1) A(1,1) A(2) A(1,2) A(3) A(1,3) A(4) A(1,4) A (1,3)A (3)
Operazioni su scalari x = 25r = sqrt(x);r = 5 y = - 2.6sign(y) floor(y) abs(y) -3 round(y) -3 ceil(y) floor(abs(y)) 2 x = 10, ; dec=2; n=((1/10^dec)*sign(x))*floor(abs(x*(10^dec)) Esempio1 : troncare un numero decimale a dec cifre dopo la virgola:
Operazioni su vettori e matrici size (A) length (A) A = 3x3 9 min (A) max (A) max (A(:))4 mean(A(:)), std(A(:)), var(A(:)), … sum(A(:)), abs(A(:)) sum (A) [4 6 7] sum (A(:)) 17 v = mean(v)2 std(v) 1 size (v) [1 3]length (v)3 min (v) 1max (v) 3 sort (v) [1 2 3] sum (v) 6
Matrici “notevoli” zeros (3) ones (1,3) rand (1,3) distribuzione uniforme [0 1] randn(1,3) distribuzione gaussiana a media nulla [1 1 1] linspace(a, b, n) ab n Esempio 2a: costruire una matrice con diverse distribuzioni sulle righe: X=zeros(3,100) %inizializzazione X(1, :) = rand(1,100); X(2, :) = rand(1, 100); X(3, :) = randn(1, 100) n=100; X=zeros(3,n) %inizializzazione X(1, :) = rand(1, n); X(2, :) = rand(1, n); X(3, :) = randn(1, n)
Distribuzione uniforme ab m m=1; sigma=10; M=10000 X=rand(1,M)*(sigma*sqrt(12))+m-sigma*sqrt(3) Esempio 3: 01 rand
Esempio 2b m=[1 0 2]; sigma=[ ]; M= X(1,:)=rand(1,M)*(sigma(1)*sqrt(12))+m(1)-sigma(1)*sqrt(3) X(2,:)=rand(1,M)*(sigma(2)*sqrt(12))+m(2)-sigma(2)*sqrt(3) X(3,:)=rand(1,M)*(sigma(3)*sqrt(12))+m(3)-sigma(3)*sqrt(3) Costruire una matrice con distribuzioni uniformi con diverse medie e varianze: riga 1: media = 1, varianza = 10; riga 2: media = 0, varianza = 10; riga 3: media = 2, varianza = 1;
Istruzione for for x = 1: p : M % comandi end x=[1 1]; for i = 3:10 x(i)= sum(x); end
Esempio 2c Ottimizzare il codice dell’Esercizio 2b utilizzando un ciclo for: m=[ ]; sigma=[ ]; M=100000; for i = 1 : length(m) X(i,:)=rand(1,M)*(sigma(i)*sqrt(12))+m(i)-sigma(i)*sqrt(3); end m=[ ]; sigma=[ ]; M=100000; X(1,:)=rand(1,M)*(sigma(1)*sqrt(12))+m(1)-sigma(1)*sqrt(3); X(2,:)=rand(1,M)*(sigma(2)*sqrt(12))+m(2)-sigma(2)*sqrt(3); X(3,:)=rand(1,M)*(sigma(3)*sqrt(12))+m(3)-sigma(3)*sqrt(3);
Distribuzione gaussiana 0 m=40; sigma=10; M=10000; X=randn(1,M)*sigma+m; Esempio: m
Plot close all figure(); subplot(1,3,1);plot(y);subplot(1,3,2);plot(y, ’.’);subplot(1,3,3); stairs(y) x=1:0.1:20; y=sin(x); plot(x,y); x=rand(1,100) plot(x, ’.’); y=sort(x); figure(); plot(y); figure(); plot(y, ’.’); figure(); plot(y); hold on plot(y, ’.’)
subplot subplot(2,3,1);plot(a) subplot(2,3,2);plot(b)... subplot(2,3,6);plot(f) 12 subplot(1, 2, 1); plot(a); subplot(1, 2, 2); plot(b);
hist hist(a,100) a=rand(1,100000); hist(a)hist(b,100) b=rand(1,10000); hist(b) hist(a,100) a=randn(1,100000); hist(a)
Esempio 2d m=[ ]; sigma=[ ]; M=100000; for i = 1 : length(m) X(i,:)=rand(1,M)*(sigma(i)*sqrt(12))+m(i)-sigma(i)*sqrt(3); end Visualizzare gli istogrammi delle righe della matrice dell’esempio 2c: figure(); hist(X(1,:)); figure(); hist(X(2,:)); figure(); hist(X(3,:)); figure(); subplot(1,3,1); hist(X(1,:)); subplot(1,3,2); hist(X(2,:)); subplot(1,3,3);hist(X(3,:));
Esempio 2e Ottimizzare il codice dell’Esercizio 2d utilizzando un ciclo for: m=[ ]; sigma=[ ]; M=100000; figure(); for i = 1 : length(m) X(i,:)=rand(1,M)*(sigma(i)*sqrt(12))+m(i)-sigma(i)*sqrt(3); subplot(1,3,i); hist(X(i,:)); end m=[ ]; sigma=[ ]; M=100000; for i = 1 : length(m) X(i,:)=rand(1,M)*(sigma(i)*sqrt(12))+m(i)-sigma(i)*sqrt(3); end figure(); subplot(1,3,1); hist(X(1,:)); subplot(1,3,2); hist(X(2,:)); subplot(1,3,3);hist(X(3,:));