esercitazione 2 – generazione di variabili matlab

Post on 01-May-2015

221 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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)

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); 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,:));

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

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)

Esercizio

Funzione per la generazione di variabili

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’];

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.

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

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’];

Un altro esempio (da conservare)

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

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)

top related