Esercitazione 2 – Generazione di variabili Matlab.

13
Esercitazione 2 – Generazione di variabili Matlab

Transcript of Esercitazione 2 – Generazione di variabili Matlab.

Page 1: Esercitazione 2 – Generazione di variabili Matlab.

Esercitazione 2 – Generazione di variabili

Matlab

Page 2: Esercitazione 2 – Generazione di variabili Matlab.

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 3: Esercitazione 2 – Generazione di variabili Matlab.

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 4: Esercitazione 2 – Generazione di variabili Matlab.

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); figure(); 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(); hist(X(1,:)); figure(); hist(X(2,:)); figure();hist(X(3,:));

Page 5: Esercitazione 2 – Generazione di variabili Matlab.

Istruzione if

if expression1 % is true % execute these commands

elseif expression2 % is true

% execute these commands

else % the default % execute these commands

end

Esempio 5: cambiare media e Esempio 5: cambiare media e varianza delle distribuzioni di varianza delle distribuzioni di MATLAB:MATLAB:

m=[100 0 2];sigma=[10 10 1];M=100000;distribuzione = [‘g’ ‘g’ ‘u’];

for i = 1 : length(m)if distribuzione(i) == ‘u’ X(i,:)=rand(1,M)*(sigma(i)*sqrt(12))+m(i)-sigma(i)*sqrt(3);elseif distribuzione(i) == ‘g’ X(i,:)= randn(1,M)*sigma+m;elsedisp(‘errore’);end figure(); hist(X(i,:)); end

Page 6: Esercitazione 2 – Generazione di variabili Matlab.

Funzioni

function [output1, output2] = name (input1, input2, input3)

(il nome della funzione deve avere lo stesso nome del file .m in cui viene salvata)

[output1, output2] = name (input1, input2, input3);

function [n] = doppio (num) n = 2 * num;

x=15x_t = doppio(x);

Dall’editor si salva come “doppio.m”

Sul workspace(o all’interno di un’altra funzione)

Page 7: Esercitazione 2 – Generazione di variabili Matlab.

Esercizio

Funzione per la generazione di variabili

Page 8: Esercitazione 2 – Generazione di variabili Matlab.

Esercizio

Trasformare il codice dell’esercizio 2e in una funzione che abbia come ingressi il numero di colonne della matrice X, il vettore delle medie, il vettore delle varianze e il tipo di distribuzione. L’uscita della funzione deve essere la matrice X.

Una volta creata la funzione, questa deve essere richiamata in un file esterno e deve avere come ingressi i seguenti dati:

Devono poi essere visualizzati gli istogrammi delle sue righe e calcolate la media e la varianza.

media=[15 15 100];sigma=[1 10 10];M=100000;distribuzione = [‘g’ ‘g’ ‘u’];

Page 9: Esercitazione 2 – Generazione di variabili Matlab.

Definizione della funzione

function [X] = generazione (M, media, sigma, distribuzione)

Vogliamo creare una funzione che abbia come ingressi:• il numero di osservazioni;• il vettore delle medie• il vettore delle deviazioni standard• il tipo di distribuzione

E che abbia come unica uscita la matrice X.

Page 10: Esercitazione 2 – Generazione di variabili Matlab.

Il codice

for i = 1 : length(m) if distribuzione(i) == ‘u’ X(i,:)=rand(1,M)*(sigma(i)*sqrt(12))+m(i)-sigma(i)*sqrt(3); elseif distribuzione(i) == ‘g’ X(i,:)= randn(1,M)*sigma+m; else disp(‘errore’); endend

Page 11: Esercitazione 2 – Generazione di variabili Matlab.

Utilizzo della funzione

X=generazione(M, media, sigma, distribuzione);

for i = 1 : length(media) figure(); hist(X(:,i)); m_e(i) = mean(X(:,i)); s_e (i) = std(X(:,i));end

media=[15 15 100];sigma=[1 10 10];M=100000;distribuzione = [‘g’ ‘g’ ‘u’];

Page 12: Esercitazione 2 – Generazione di variabili Matlab.

Un altro esempio (da conservare)

media=[0 0 0 0];sigma=[1 1 1 10];M=1000000;distribuzione = [‘u’ ‘u’ ‘u’ ‘u’];

Page 13: Esercitazione 2 – Generazione di variabili Matlab.

Esercizio

Dato il vettore:

[3 4 2 0 5 3 5 5 2 4 3 2 6 1 4 4 4 1 2 5 100]

calcolarne media e mediano.

Escludere l’ultimo elemento del vettore e ripetere nuovamente l’operazione.

Costruire l’istogramma manualmente. (Utilizzare la funzione bar per graficarlo)