Top Banner
Esercitazione 1 - Introduzione Matlab
20

Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

May 02, 2015

Download

Documents

Savio Simona
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

Esercitazione 1 - Introduzione

Matlab

Page 2: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

MatlabMATrix LABoratory

Command window

Current Directory

Comandi recenti

Variabili correnti

Contenuto cartella corrente

editor

Page 3: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

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];

1 2 3

123

1 2 34 5 67 8 9

Page 4: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

Istruzioni frequenti

clear all

clc

close all

% commento

%% per un codice più ordinato...

helphelp

;

F9CTRL invio

;

F9CTRL invio

Page 5: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

Help

Contents getting 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

Page 6: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

Operatori

Addizione (+) a + bSottrazione (-) a - bAssegnamento (=) a = b

Potenze (^ o .^) a^b o a.^bMoltiplicazione (* o .*) a*b o a.*bDivisione (/ o ./) a/b o a./b

1 2 31 0 12 4 3

A =

1 2 22 3 10 1 2

B =

5 11 101 3 48 17 15

A * B =

1 4 62 0 10 3 8

A .* B =

Trasposizione (‘) a’

Page 7: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

Estrazione di sotto-matrici

1 2 31 0 12 4 3

A =

A (:,:) =

1 2 31 0 12 4 3

A (: ,1) = 112

A (1 ,:) = 1 2 3

A (3,2) = 4 A (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)

Page 8: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

Operazioni su scalari

x = 25 r = sqrt(x); r = 5

y = - 2.6 sign(y)

floor(y)

abs(y)-1

-3

round(y) -3

ceil(y) -2

2.6

floor(abs(y)) 2

x = 10,9845739;dec=2;n=((1/10^dec)*sign(x))*floor(abs(x*(10^dec))

Esempio1 : troncare un numero decimale a Esempio1 : troncare un numero decimale a dec dec cifre dopo la virgola:cifre dopo la virgola:

Page 9: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

Operazioni su vettori e matrici

size (A)

length (A) 1 2 31 0 12 4 3

A =

3x3

9

min (A)

max (A)

1 0 1

2 4 3max (A(:)) 4

mean(A(:)), std(A(:)), var(A(:)), …

sum(A(:)), abs(A(:))

sum (A) [4 6 7]

sum (A(:)) 17

v = 1 3 2

mean(v) 2 std(v) 1

size (v) [1 3] length (v) 3

min (v) 1 max (v) 3

sort (v) [1 2 3] sum (v) 6

Page 10: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

Matrici “notevoli”

zeros (3) 0 0 00 0 00 0 0

ones (1,3)

rand (1,3) 0.8147 0.9134 0.2785distribuzione uniforme [0 1]

randn(1,3) distribuzione gaussiana a media nulla

[1 1 1]

linspace(a, b, n) a bn

Esempio 2a: costruire una matrice con diverse distribuzioni sulle righe:Esempio 2a: costruire una matrice con diverse distribuzioni sulle righe:

X=zeros(3,100) %inizializzazioneX(1, :) = rand(1,100);X(2, :) = rand(1, 100);X(3, :) = randn(1, 100)

n=100;X=zeros(3,n) %inizializzazioneX(1, :) = rand(1, n);X(2, :) = rand(1, n);X(3, :) = randn(1, n)

Page 11: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

Distribuzione uniforme

a b

m

12

2ab

bam

312 mrand

aabrand )(

m=1;sigma=10;M=10000X=rand(1,M)*(sigma*sqrt(12))+m-sigma*sqrt(3)

Esempio 3:Esempio 3:

0 1

rand

Page 12: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

Esempio 2b

m=[1 0 2];sigma=[10 10 1];M=100000X(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 Costruire una matrice con distribuzioni uniformi con diverse medie e varianze:medie e varianze:

• riga 1: media = 1, varianza = 10;• riga 2: media = 0, varianza = 10;• riga 3: media = 2, varianza = 1;

Page 13: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

Istruzione for

for x = 1: p : M % comandiend

x=[1 1];for i = 3:10 x(i)= sum(x);end

1 1 2 4 8 16 32 641 1 2 4 8 16 32 64

Page 14: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

Esempio 2c

Ottimizzare il codice dell’Esercizio 2b utilizzando un ciclo for:Ottimizzare il codice dell’Esercizio 2b utilizzando un ciclo for:

m=[100 0 2];sigma=[10 10 1];M=100000;for i = 1 : length(m) X(i,:)=rand(1,M)*(sigma(i)*sqrt(12))+m(i)-sigma(i)*sqrt(3);end

m=[100 0 2];sigma=[10 10 1];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);

Page 15: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

Distribuzione gaussiana

0

mrandn m=40;sigma=10;M=10000;X=randn(1,M)*sigma+m;

Esempio:Esempio:

m

Page 16: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

Plot

close allclose all figure();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 onplot(y, ’.’)

Page 17: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

subplot

1

665544

3322 subplot(2,3,1);plot(a)subplot(2,3,2);plot(b)...subplot(2,3,6);plot(f)

1 2 subplot(1, 2, 1); plot(a);subplot(1, 2, 2); plot(b);

Page 18: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

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)

Page 19: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

Esempio 2d

m=[100 0 2];sigma=[10 10 1];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 Visualizzare gli istogrammi delle righe della matrice dell’esempio 2c: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,:));

Page 20: Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.

Esempio 2e

Ottimizzare il codice dell’Esercizio 2d utilizzando un ciclo for:Ottimizzare il codice dell’Esercizio 2d utilizzando un ciclo for:

m=[100 0 2];sigma=[10 10 1];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=[100 0 2];sigma=[10 10 1];M=100000;for i = 1 : length(m) X(i,:)=rand(1,M)*(sigma(i)*sqrt(12))+m(i)-sigma(i)*sqrt(3);endfigure();subplot(1,3,1); hist(X(1,:)); subplot(1,3,2); hist(X(2,:)); subplot(1,3,3);hist(X(3,:));