Matlab-Appunti - APPUNTI DI LEZIONE PDF

Title Matlab-Appunti - APPUNTI DI LEZIONE
Author Thimmy Enea Bisciari
Course Informatica
Institution Università degli Studi di Firenze
Pages 21
File Size 2 MB
File Type PDF
Total Downloads 80
Total Views 169

Summary

APPUNTI DI LEZIONE...


Description

3

2. 5

2

1. 5

1

0. 5

0 1

2

3

4

5

>>bar(rand(5,3),’stacked’) >> colormap(winter) >> title('candies in five markets') >> set(gca,'XTickLabel',{'jan','feb','mar'}) >> set(gca,'YTick',[1,2])

14

12

10

8

6

4

2

0 1

2

4

6

>> x=[1,2,4,6]; values=[4,6,12,9] values = 4

6 12

9

>> dev=[0.6,0.3,0.5,1] dev = 0.6000 0.3000 0.5000 1.0000 >> bar(x,values,'w');hold on; >> errorbar(x,values,dev,'.k')

NB= su entrambi gli assi puoi inserire anche delle stringhe, però devi stare attento nell’utilizzo delle ‘…’ oppure “…” nel separare i nomi. Es. se voglio scrivere i mesi: >>set(gca,’XTickLabel’,[“jen”,”feb”]) -

1

Funzione HOLD ON/HOLD OFF Dopo aver scritto il diagramma a barre b(x,y) posso scrivere subito accanto HOLD ON per poter mantenere quel grafico senza cancellarlo, e dunque poterne fare un altro sovrapposto. Se invece voglio perdere quel grafico uso HOLD OFF.

-

Funzione ERRORBAR(x,values,dev,’.k’) È possibile fare dei grafici con l’errore corrispondente. Disegna solo gli errori, se voglio anche le barre le devo disegnare

-

Funzione FIX(MOD(RAND(r,c).*10*n,n)) Se è necessaria una matrice (vettore) con valori casuali interi nell'intervallo [1, n].

Dove FIX restituisce la parte intera di un numero e mod (x, y) restituisce il resto dopo la divisione di x per y. dopo aver studiato questo capitolo sii anche CONSAPEVOLE di: - diversi tipi di rappresentazioni grafica - come modificare le proprietà del grafico utilizzando il comando SET - Rappresentazioni di dati 3D - utilizzo del comando HOLD ON (non consentire a un grafico di sostituire il precedente) - utilizzo del comando PRINT

Cap 4- Creazione di Cicli e Programmazione D'ora in poi si acquisisce la possibilità di scrivere sequenze di comandi (strutturati) in modo amichevole ed immediato. Per fare ciò, MATLAB fornisce un editor di testo accessibile da EDITOR LABEL. Scrivete la vostra sequenza di comandi sul pannello di destra ed eseguiteli sul pannello di sinistra semplicemente digitando il nome del relativo file (QUI UNTITLED.m, salvato automaticamente nella directory di lavoro. Ovviamente il nome può essere cambiato). -

Funzione “if” (se-diagrammi di flusso) con questa tipologia di comandi, si può creare su MatLab un “Diagramma di Flusso”, dove con “if” dichiaro una condizione, se questa condizione è Vera si verificherà la prima affermazione= disp(affermazione 1), altrimenti se è Falsa si verificherà la seconda affermazione=disp(affermazione 2). Disp=display, comando per stampare simile a sprintf.  CONDIZIONE SEMPLICE If (condizione) Disp(‘affermazione1’) Else Disp(‘affermazione2’) End Test_if.m X=input(‘insert a number greater than zero’) If x>0 Disp(‘true’) Else Disp(‘false’) End  CONDIZIONE MULTIPLA If (condizione1) Disp(affermazione1) Elseif (condizione2) Disp(affermazione2) Elseif … Else Disp(affermazione n) End Test_mult-if.m X=input(‘insert test result [0-30]:’); If x>x=2 (variabile globale)  Function test_loc  X=0 (variabile locale, vive solo all’interno della funzione, del test)  >>test_loc  X=0  >>x  X=2 Variabili globali: solitamente scritte in maiuscolo, sono definite nell'area di lavoro e sono accessibili da tutte le procedure. Variabili persistent: possono essere definite solo all'interno di funzioni e vivono nello spazio in cui vengono create. Persistono tra le successive chiamate della funzione. Modificare il numero di input e output: se dobbiamo cambiare il numero degli input di una funzione, dobbiamo usare la variabile Varargin (argomenti variabili in) e Nargin (numero di argomenti in). Se dobbiamo fare lo stesso con gli output di una funzione, dobbiamo usare i comandi Varargout (argomenti variabili out) e Nargout (numero di argomenti out). Ad esempio la Funzione “sum” a priori non sa il numero degli argomenti che io andrò ad inserire. E quindi come si fa definire una funzione in cui non conosco fin dall’inizio quanti argomenti avrà. Varargin e Varargout sono variabili di cella, cioè matrici di variabili di input il cui accesso all’elemento i-esimo è Varargin i e Varargout i. Nargin e Nargout sono numeri interi. - Nargin= numero argomenti in ingresso - Nargout= numero argomenti in uscita - Varargin= variabili in ingresso. Lista di tutte le variabili che si mettono all’ingresso ad eccezione della prima. Variabile predefinita di Matlab che contiene la lista di tutte le variabili in ingresso. Serve e x esempio voglio trovare il max e il min di tanti vettori. - Varargout= variabili in uscita. Varargin e Varargout non sono dei Vettori, ma Celle, non cambia nulla dai vettori, cambia solo che vi accedo attraverso la parentesi graffa (). Esempio su Varargin: Medie serie di numeri in ingresso: - M(2,3,0,1) - M(2,1,6)=3 - M(4)=4 La media è (x)function[x]=M(n1,varargin) mi prende tutti gli elementi M(2,3,0,1) n1 è l’elemento 2, Varargin si compone di 3 elementi (3,0,1). 3 è il numero di ingressi -1. Il numero di elementi di Varargin è il numero degli elementi-1, quindi è un elemento variabile (dimensione variabile). - Function[out1]=sum_integers(x,varargin) %sum of a sequence of input integers %it holds that nargin=1+length(varargin) Sprintf(‘Number of inputs:%d\n’,nargin) Sprintf(‘Number of inputs in varargin:%d\n’, length(varargin)) %Selem stores the partial sum of the input integers Selem=x; For i=1:nargin-1 Selem=Selem+vargini; End [out]=Selem; >>x1=6;x2=7;x3=1; (x1 entrata in x); (x2 e x3varargin) >>[y]=sum_integers(x1,x2,x3) Number of input:3 Number of input in varargin:2 [y]=14

6

Elementi di un vettore (minmax) funzione

Se voglio considerare gli elementi di una matrice e volessi scegliere il min e il max di questa matrice, come dovrei modificare lo script affinché ciò accada? Non basta solo fare il ciclo for pippo2:length(x), ma dovrò andare a vedere tutti gli elementi dello stesso ciclo della mia matrice, senza saltarne neanche uno. Bisogna considerare una seconda variabile e un secondo ciclo: pippo andrà sulle righe e pluto sulle colonne.

7

Se richiamo una funzione e non gli dico di immagazzinare tutte le uscite in un vettore, quello che mi torna è il primo degli elementi dell’output. Quindi devo istanziare un vettore con tutti gli elementi che voglio in output.

L’ultimo elemento di Varargin (Boo) lo ottengo nargin (4)-1=3Boo. Esempio compito: stampare l’ultimo ingresso di Varargin (nargin-1). Nel 2 esempio non c’è la x e quindi tutto va in Varargin, e quindi la lunghezza è=4, l’ultimo elemento di varargin è nargin (Boo). Esempio di script More on Data Import/Export

8

Gestire i file (crearli, salvarli, aggiornarli) non è un compito facile: la filosofia generale che sta alla base di queste azioni prevede l'uso di una variabile puntatore intero (diciamo handler), cioè un numero che tiene traccia dell'ultimo simbolo esaminato di quel file. L'ultimo simbolo di un file si chiama eof (fine di un file). Per interagire con un file, deve essere: - Aperto (il puntatore si trova nella sua prima posizione) - Leggi (il puntatore aumenta il suo valore di una o più posizioni); - Aggiornato (è possibile modificare un simbolo o aggiungere nuovi simboli alla sua fine); - Chiuso (la variabile del puntatore viene spostata nel cestino) dopo il suo utilizzo. Ogni azione ovviamente ha un proprio comando da eseguire:  Fopen(filename)  Fopen return  Feof(x)  Fgetl(x)  Fclose(x)

9

Cap 5- A better Sound Generate a Sound (generare un suono) Matlab fornisce un modo semplice per creare e manipolare i suoni.

10

A= Amstrong.

Di base usa “sound Command” x generare musica: -sound(tone_values,frequences) genera un suono utilizzando i valori dell'array tone_values e riproducendone la frequenza ogni secondo. Per evitare distorsioni del suono, i valori del tone_values deve essere normalizzato nel range [-1,1]. Tone_values è un vettore di numeri che mi approssima l’onda. Campiono i valori di (x,y) corrispondenti alle componenti dell’onda (-1,1 tone_value), ne vaccio un vettore (15 valori--frequence), e dico suonameli in un secondo. Per essere suonata bene ho bisogno di molti campionamenti. “sr” 44100 valori suonati (%sample rash in un secondo in Hz). D=1 sec. Noise=rand(1,sr*d)--%generate a vector of length sr*d with random elements in the interval [0,1].

11

Viene suonato il vettore che abbiamo generato. Sr=44100; d=1; f=1000; t=linspace(0,2*pi*1000*d,sr*); tone=sin(t); sound(tone,sr). Un suono generico è la composizione di varie armoniche (onde singole) aventi frequenze e ampiezze differenti. Per prima cosa impariamo come combinare tre onde con frequenze diverse, entrambe aventi una frequenza di base comune di 250 Hz, e non avendo (l'effetto è lo stesso dell'ippica pro o noob).

12

13

Cap. 6 Crea ed elabora immagini Nozioni di base sulle immagini: un'immagine è rappresentata come una matrice a valore intero, ogni elemento rappresenta un pixel colorato. I valori ammissibili di ogni pixel sono: - Intensità di grigio = rappresentata come numeri a 8 bit che vanno da 0 (nero) a 255 (bianco); - Triplette RGB = terzine di valori di intensità dei colori Rosso Verde e Blu, che vanno da 0 a 255 ciascuna e cedono a 2 24 colori diversi (True Colors); - Colore indicizzazione = un numero scelto in una tavolozza di 64 colori e corrispondente a una tripletta assegnata di sfumature RGB. Matlab utilizza l'indicizzazione delle immagini come impostazione predefinita. Showing palette table: >>colormap %shows palette table >>MMap=colormap; >>MMap(3:6,:) Changing palette table: >>MMap=[1,0,0;0.8,0.1,0;0.1,0,0] >>colormap(MMap); >>%default colormap changes into MMap >>img=[1 2 1 1;3 3 3 1]; >>image(img) %img is shown 0. 5

1

1. 5

2

2. 5 0. 5

14

1

1. 5

2

2. 5

3

3. 5

4

4. 5

La tavolozza dei colori di default viene ristabilita una volta che viene chiusa la pagina di lavoro. Esiste un modo utile e carino x cambiare la tavolozza dei colori: >>colormapeditor Un’immagine può essere IMPORTATA dall’esterno in una variabile di matrici: variable=imread(‘filename’;’filetype’); può essere RISCRITTA o CREATA: imwrite(variable;’filename’;’filetype’); Modificare l’intensità: un’immagine può essere trasformata in una matrice di numeri interi x permettere la sua manipolazione. Si può crescere/decrescere la luminosità aggiungendo/togliendo a tutti gli inserimenti lo stesso valore.

15

Finestre: Valorizza alcune parti di un'immagine riproducendola con una finestra della stessa dimensione i cui ingressi sono normalmente nel range [0.1]. Un primo esempio seleziona la parte centrale di un'immagine e il secondo la valorizza come una finestra gaussiana.

- Elaborazione di quartiere= lettura - Bordi dell’immagine= lettura - Elaborazione avanzata delle immagini= lettura Creazione di immagini tramite calcolo: avviciniamoci ora alla progettazione di immagini semplici. Questo argomento verrà trattato nel capitolo Psychtoolbox. L'esempio seguente mostra come creare una linea, una polilinea e un cerchio.

Cap 7. Analisi Dat Statistica Descrittiva:

16

Misure di tendenza centrale:  Media, Moda, Mediana - Misure di Dispersione:  Min e Max  Deviazione Standard e Varianza - Bivariate e Multivariate  Covarianza  Regressione lineare semplice e complessa  Modello lineare Statistica Inferenziale: - Statistica parametrica:  “t” test  ANOVA  Ecc. -

Cap 8. Il fascino dell’interfaccia grafica La funzione dello schermo: questa è la funzione principale del toolbox e viene utilizzata principalmente per gestire funzioni e parametri grafici come disegnare forme geometriche, importare figure, ottenere informazioni sulle caratteristiche HW e SW e sincronizzare tutti gli stimoli. L’uso di Try, Catch, end è molto utile e permette di bypassare i Loop di errore con una procedura di rilevamento del timeout o del sovraccarico.

Come usare lo schermo per disegnare figure: la caratteristica principale di Screen in per presentare figure o disegnare con la massima precisione temporale. Sono necessari tre passaggi: - Apri una figura - Disegna / modifica - Chiudilo Per aprire una figura è necessario utilizzare la sotto funzione "OpenWindow".

17

Il suo primo parametro è lo schermo in cui vogliamo visualizzare la figura (in caso di multischermo); il parametro di default è 0. Dopo una tripletta di colori RGB è opzionale, quindi l'area che vogliamo impostare come finestra, da disegnare all'interno. Se non viene specificata alcuna area, viene considerata l'intera area dello schermo. La funzione restituisce un 'puntatore allo schermo' e le 'coordinate dello schermo' in pixel (4 caratteri [0,0, x, y] dove (0,0) è l'angolo in alto a sinistra, (x, y) è l'angolo inferiore destro dello schermo. Altre opzioni possono essere trovate nel manuale in linea. Alcune impostazioni sono spesso necessarie per ottenere la piena funzionalità della funzione secondaria Finestra aperta.

18

19

20

21...


Similar Free PDFs