A.A. 2006-2007Introduzione a Matlab1 Laboratorio di Informatica Sara Poltronieri :...

Post on 02-May-2015

215 views 1 download

Transcript of A.A. 2006-2007Introduzione a Matlab1 Laboratorio di Informatica Sara Poltronieri :...

A.A. 2006-2007 Introduzione a Matlab 1

Laboratorio di InformaticaLaboratorio di Informatica

Sara Poltronieri : sara.poltronieri@unipd.it

A.A. 2006-2007

A.A. 2006-2007 Introduzione a Matlab 2

MATrix LABoratory

• MATLABMATLAB è nato principalmente come programma destinato alla gestione di matrici. E’ un interprete di comandi in cui l’unità base dei dati è un vettore o una matrice.

• I comandi possono essere forniti interattivamente o contenuti in files su disco (M-files).

• Comprende un vasto set di funzioni predefinite e numerose librerie (toolbox) per svariate applicazioni che possono essere ampliate.

• Ha una buona potenzialità grafica.

• Esistono versioni di MATLAB per Unix/Linux, Windows e MAC. I files creati sono portabili da una piattaforma all’altra.

A.A. 2006-2007 Introduzione a Matlab 3

COSA SI PUO’ FARECOSA SI PUO’ FARECON MATLAB...CON MATLAB...

(... oltre ad usarlo come calcolatrice ...)

ALCUNE POTENZIALITA’ALCUNE POTENZIALITA’

A.A. 2006-2007 Introduzione a Matlab 4

Calcolo matriciale

>> A = magic(3)>> B = [4 5 0; 3 8 3; 4 9 1]>> A*B

>> A*B

ans =

59 102 9 55 118 22 51 110 29

Matlab lavora con le matrici.

A.A. 2006-2007 Introduzione a Matlab 5

Soluzione di equazioni

>> s = solve('cos(2*x)+sin(x)=1')

s =

[ 0]

[ pi]

[ 1/6*pi]

[ 5/6*pi]

A.A. 2006-2007 Introduzione a Matlab 6

Grafico di una funzione ...

>> fplot(inline('2*(sin(x+3)/(x+3))*(4*x^2)'),[-10 10])

A.A. 2006-2007 Introduzione a Matlab 7

... grafico 3D di una funzione...

-1

-0.5

0

0.5

1

-1

-0.5

0

0.5

10

5

10

15

20

25

30

35

>> t = 0:pi/50:1>> plot3(sin(t),cos(t),t)>> grid on>> axis square

A.A. 2006-2007 Introduzione a Matlab 8

... derivata della funzione

>> syms x % calcolo simbolico>> f= 2*(sin(x+3)/(x+3))*(4*x^2)>> diff(f)

ans =8*cos(x+3)/(x+3)*x^2-8*sin(x+3)/(x+3)^2*x^2+16*sin(x+3)/(x+3)*x

>> pretty(ans)

2 2

cos(x + 3) x sin(x + 3) x sin(x + 3) x

8 ------------- - 8 ------------- + 16 ------------

x + 3 2 x + 3

(x + 3)

A.A. 2006-2007 Introduzione a Matlab 9

Grafici 3D>> [X,Y,Z]= peaks(30)>> surfc(X,Y,Z)>> colormap hsv>> axis([-3 3 -3 3 -10 5])>> grid on

A.A. 2006-2007 Introduzione a Matlab 10

Altri esempi 3D

A.A. 2006-2007 Introduzione a Matlab 11

2

4

6

30

210

60

240

90

270

120

300

150

330

180 0

28%

6%

22%

33%

11%

Grafici

>> x = [1 3 0.5 2.5 2]>> explode = [0 1 0 0 0]>> pie3(x,explode)>> colormap hsv

>> theta = 2*pi*rand(1,50);

>> rose(theta)

A.A. 2006-2007 Introduzione a Matlab 12

Istogrammi

>> Y = cool(7);>> bar3(Y,'detached')>> title('Detached')

A.A. 2006-2007 Introduzione a Matlab 13

Il geoide!!

A.A. 2006-2007 Introduzione a Matlab 14

Plot di immagini 2D in 3D

>> load earthsphere; h = findobj('Type','surface');hemisphere = [ones(257,125),... X,... ones(257,125)];set(h,'CData',flipud(hemisphere),'FaceColor','texturemap')colormap(map)axis equalview([90 0])set(gca,'CameraViewAngleMode','manual')view([65 30])

A.A. 2006-2007 Introduzione a Matlab 15

OCTAVE – Workshop

MATLAB(commerciale, licenza costosa!!)

Octave WorkshopOctave