| Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente |
| roberto.alfieri:pub:matlab [11/11/2019 16:58] – [Ambiente di Lavoro] roberto.alfieri | roberto.alfieri:pub:matlab [11/11/2020 10:29] (versione attuale) – [Programmazione] roberto.alfieri |
|---|
| L'Università di Parma ha acquistato la licenza TAH (Total Academic Headcount) di MathWorks, che consente l'installazione di Matlab (inclusi Simulink e una cinquantina circa di toolbox aggiuntivi) per personale e studenti dell'Ateneo. La licenza e' per il solo uso didattico. | L'Università di Parma ha acquistato la licenza TAH (Total Academic Headcount) di MathWorks, che consente l'installazione di Matlab (inclusi Simulink e una cinquantina circa di toolbox aggiuntivi) per personale e studenti dell'Ateneo. La licenza e' per il solo uso didattico. |
| |
| {{:roberto.alfieri:user:studenti-how_to_install_and_activate_your_personal_copy_of_matlab-student.pdf| Installazione di Matlab per studenti UniPR}} | [[ https://si.unipr.it/sites/default/files/2018-11/Avviorapido-licenza-TotalAcademicHeadcount-UtenteFinale.pdf | Avvio rapido ]] - |
| | {{ https://si.unipr.it/pagina-base/matlab-luniversita-di-parma |
| | | Installazione di Matlab per studenti UniPR}} |
| |
| [[ https://www.gnu.org/software/octave/download.html | Octave download]] - | [[ https://www.gnu.org/software/octave/download.html | Octave download]] - |
| columns(A) #Determina il numero di colonne (solo Octave) | columns(A) #Determina il numero di colonne (solo Octave) |
| length(A) #Dimensione massima della matrice | length(A) #Dimensione massima della matrice |
| | r=8 |
| | c=4 |
| zeros(r,c) #Matrice rxc di 0 | zeros(r,c) #Matrice rxc di 0 |
| ones(r,c) #Matrice rxc di 1 | ones(r,c) #Matrice rxc di 1 |
| hold on # Mantieni il disegno corrente nel grafico (per plot sovrapposti) | hold on # Mantieni il disegno corrente nel grafico (per plot sovrapposti) |
| hold off # Disattiva la funzione hold-on | hold off # Disattiva la funzione hold-on |
| print('filename.png','-dpng'); # stampa su stampante o su file il plot | print('plot_matlab.png','-dpng'); # stampa su file il plot in formato png (MATLAB) |
| | print('plot_matlab.pdf','-dpdf'); # stampa su file il plot in formato pdf (MATLAB) |
| | print plot_matlab.png -dpng'; # stampa su file il plot in formato png (OCTAVE) |
| | print plot_matlab.pdf -dpdf'; # stampa su file il plot in formato pdf (OCTAVE) |
| |
| ==== Distribuzione normale ==== | ==== Distribuzione normale ==== |
| [[ https://it.wikipedia.org/wiki/Distribuzione_normale | Distribuzione Normale ]] (wp) | [[ https://it.wikipedia.org/wiki/Distribuzione_normale | Distribuzione Normale ]] (wp) |
| <code> | <code> |
| X=randn(r,c) #Matrice rxc di casuali con distribuzione normale (mean=0, std=1) | c=2 |
| m=mean(A) #Valor medio di ogni colonna di A | r=10 |
| s=std(A) #Deviazione standard di ogni colonna A | RN=randn(r,c) #Matrice rxc di casuali con distribuzione normale (mean=0, std=1) |
| std(A(:,2)) #Std della seconda colonna | m=mean(RN) #Valor medio di ogni colonna di X |
| normpdf(X,m,s) #Densita' di prob. per ogni elemento di X, con mean=m e std=s | s=std(RN) #Deviazione standard di ogni colonna X |
| X=abs(rand(1,20))*10 ; # Crea un vettore di 20 numeri casuali tra 0 e 10 | std(RN(:,2)) #Std della seconda colonna |
| Y=hist(X,10); # Suddivide l'intervallo del vettore in 10 intervalli e calcola le frequenze | # |
| | X=[-3.14:0.1:3.14] |
| | Y=normpdf(X,m,s) #Densita' di prob. per ogni elemento di X, con mean=m e std=s |
| | plot(X,Y) |
| | # |
| | X=randn(1,200)*10+5 ; # Crea un vettore di 200 numeri random con distribuzione normale, con valor medio=5 e std=10 |
| | hist(X,10); # Suddivide l'intervallo del vettore in 10 intervalli, calcola e disegna le frequenze |
| </code> | </code> |
| ==== Distribuzione di Poisson ==== | ==== Distribuzione di Poisson ==== |
| <code> | <code> |
| # Esercizi: | # Esercizi: |
| P=poissrnd(1.5,[1,10]) # genera di 10 numeri random in distribuzione di Poisson con Lambda=1.5 | P=poissrnd(1.5,[1,100]) # genera di 100 numeri random in distribuzione di Poisson con Lambda=1.5 |
| mean(P) # calcola il valor medio | mean(P) # calcola il valor medio |
| bar(P) # genera un plot a barre con la distribuzione dei 100 numeri | bar(P) # genera un plot a barre con la distribuzione dei 100 numeri |
| hist(P) # genera un plot a barre con 10 classi di frequenza | hist(P) # genera un plot a barre con 10 classi di frequenza |
| hist(P,4) # genera un plot a barre con 4 classi di frequenza | hist(P,4) # genera un plot a barre con 4 classi di frequenza |
| [d,n]=hist(P,4) # scrive in dati e n i valori dei dati (d) e le relative classi (n) | [d,n]=hist(P,6) # scrive in dati e n i valori dei dati (d) e le relative classi (n) |
| bar(n,d) # plot a barre con dati e frequenze | bar(n,d) # plot a barre con dati e frequenze |
| x=[1:10] | x=[0:10] |
| y = poisspdf(x,1.5); # determina la densità di probabilità per i valori in x con Lambda=1.5 | y = poisspdf(x,1.5); # determina la densità di probabilità per i valori in x con Lambda=1.5 |
| plot(x,y,'+'); # plot della curva | bar(x,y) |
| </code> | </code> |
| |
| z=[c,'mondo'] #Concatena 2 (o piu') stringhe | z=[c,'mondo'] #Concatena 2 (o piu') stringhe |
| |
| ==== Cell Array ==== | |
| |
| I Cell Arrays sono delle collezioni di matrici multidimensionali di qualunque tipo di dato, | |
| come ad esempio matrici numeriche e stringhe, oppure matrici numeriche di diverse dimensioni. | |
| |
| I cells array vengono rappresentati con la funzione cell() oppure parentesi graffe {}. | |
| |
| Ad esempio, il seguente comando crea una array 1x3 composta da 2 array numerici e una stringa: | |
| |
| C={[1,2,3], [4,5], "ciao"} | |
| |
| C(1,2)=[6,7] sovrascrive il secondo array | |
| |
| ====Script==== | ====Script==== |
| s=1; | s=1; |
| X=m-3*s:1/100:m+3*s; | X=m-3*s:1/100:m+3*s; |
| Y=normpdf(X,m,s) | Y=normpdf(X,m,s); |
| %Y=gauss(X,m,s) | %Y=gauss(X,m,s); |
| plot(X,Y); | plot(X,Y); |
| xlabel('X'); | xlabel('X'); |
| </code> | </code> |
| |
| [[http://www.fis.unipr.it/~roberto.alfieri/didattica/matdid/prog/octave/ | altri esercizi ]] | [[http://didattica-linux.unipr.it/home/alfieri/matdid/LABI/octave/ | altri esercizi ]] (occorre la VPN) |