esercitazione 2 – generazione di variabili matlab

13
Esercitazione 2 – Generazione di variabili Matlab

Upload: alonso-palma

Post on 01-May-2015

221 views

Category:

Documents


1 download

TRANSCRIPT

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)