Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi...
-
Upload
savio-simona -
Category
Documents
-
view
225 -
download
2
Transcript of Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi...
Esercitazione 1 - Introduzione
Matlab
MatlabMATrix 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];
1 2 3
123
1 2 34 5 67 8 9
Istruzioni frequenti
clear all
clc
close all
% commento
%% per un codice più ordinato...
helphelp
;
F9CTRL invio
;
F9CTRL invio
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
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’
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)
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:
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
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)
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
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;
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
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);
Distribuzione gaussiana
0
mrandn m=40;sigma=10;M=10000;X=randn(1,M)*sigma+m;
Esempio:Esempio:
m
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, ’.’)
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);
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=[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,:));
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,:));