Laboratorio di Informatica
A.A. 2006-2007
Sara Poltronieri : [email protected]
A.A. 2006-2007
Introduzione a Matlab
1
MATrix LABoratory
• MATLAB è 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
2
COSA SI PUO’ FARE
CON MATLAB...
(... oltre ad usarlo come calcolatrice ...)
ALCUNE POTENZIALITA’
A.A. 2006-2007
Introduzione a Matlab
3
Calcolo matriciale
Matlab lavora con le matrici.
>> A = magic(3)
>> B = [4 5 0; 3 8 3; 4 9 1]
>> A*B
>> A*B
ans =
59
55
51
A.A. 2006-2007
102
118
110
9
22
29
Introduzione a Matlab
4
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
5
Grafico di una funzione ...
>> fplot(inline('2*(sin(x+3)/(x+3))*(4*x^2)'),[-10 10])
A.A. 2006-2007
Introduzione a Matlab
6
... grafico 3D di una funzione...
>>
>>
>>
>>
t = 0:pi/50:1
plot3(sin(t),cos(t),t)
grid on
axis square
35
30
25
20
15
10
5
0
1
0.5
1
0.5
0
0
-0.5
-0.5
-1
A.A. 2006-2007
Introduzione a Matlab
-1
7
... 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
cos(x + 3) x
2
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
8
Grafici 3D
>>
>>
>>
>>
>>
A.A. 2006-2007
[X,Y,Z]= peaks(30)
surfc(X,Y,Z)
colormap hsv
axis([-3 3 -3 3 -10 5])
grid on
Introduzione a Matlab
9
Altri esempi 3D
A.A. 2006-2007
Introduzione a Matlab
10
Grafici
22%
>>
>>
>>
>>
x = [1 3 0.5 2.5 2]
explode = [0 1 0 0 0]
pie3(x,explode)
colormap hsv
11%
90
28%
33%
6%
6
120
60
4
150
30
2
180
0
210
330
240
>> theta = 2*pi*rand(1,50);
>> rose(theta)
300
270
A.A. 2006-2007
Introduzione a Matlab
11
Istogrammi
>> Y = cool(7);
>> bar3(Y,'detached')
>> title('Detached')
A.A. 2006-2007
Introduzione a Matlab
12
Il geoide!!
A.A. 2006-2007
Introduzione a Matlab
13
Plot di immagini 2D in 3D
>> load earth
sphere; h = findobj('Type','surface');
hemisphere = [ones(257,125),...
X,...
ones(257,125)];
set(h,'CData',flipud(hemisphere),'FaceColor','texturemap')
colormap(map)
axis equal
view([90 0])
set(gca,'CameraViewAngleMode','manual')
view([65 30])
A.A. 2006-2007
Introduzione a Matlab
14
OCTAVE – Workshop
MATLAB
(commerciale, licenza costosa!!)
Octave
A.A. 2006-2007
Octave Workshop
Introduzione a Matlab
15
Scarica

Lab_Info_MATLAB_1