esercitazione 2 – generazione di variabili matlab
TRANSCRIPT
![Page 1: Esercitazione 2 – Generazione di variabili Matlab](https://reader030.vdocuments.pub/reader030/viewer/2022013011/5542eb59497959361e8c538e/html5/thumbnails/1.jpg)
Esercitazione 2 – Generazione di variabili
Matlab
![Page 2: Esercitazione 2 – Generazione di variabili Matlab](https://reader030.vdocuments.pub/reader030/viewer/2022013011/5542eb59497959361e8c538e/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022013011/5542eb59497959361e8c538e/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022013011/5542eb59497959361e8c538e/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022013011/5542eb59497959361e8c538e/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022013011/5542eb59497959361e8c538e/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022013011/5542eb59497959361e8c538e/html5/thumbnails/7.jpg)
Esercizio
Funzione per la generazione di variabili
![Page 8: Esercitazione 2 – Generazione di variabili Matlab](https://reader030.vdocuments.pub/reader030/viewer/2022013011/5542eb59497959361e8c538e/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022013011/5542eb59497959361e8c538e/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022013011/5542eb59497959361e8c538e/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022013011/5542eb59497959361e8c538e/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022013011/5542eb59497959361e8c538e/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022013011/5542eb59497959361e8c538e/html5/thumbnails/13.jpg)
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)