La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DEI - Univ. Padova (Italia) Creazione di matrici >> A = [1 2 3; 4 5 6; 7 8 9]; Delimititatore di matriceDelimititatore di riga >> A = [... 1 2 3 4 5 6.

Presentazioni simili


Presentazione sul tema: "DEI - Univ. Padova (Italia) Creazione di matrici >> A = [1 2 3; 4 5 6; 7 8 9]; Delimititatore di matriceDelimititatore di riga >> A = [... 1 2 3 4 5 6."— Transcript della presentazione:

1 DEI - Univ. Padova (Italia) Creazione di matrici >> A = [1 2 3; 4 5 6; 7 8 9]; Delimititatore di matriceDelimititatore di riga >> A = [ ]; Entrambi i comandi creano la stessa matrice 3x3

2 DEI - Univ. Padova (Italia) Accedere agli elementi delle matrici: coordinate >> A = [ ]; >> A(2,1) ans = 4 >> A(2) ans = 4 Per accedere ad elementi di una matrice si usano le parentesi tonde Un elemento è identificato dalla sua posizione (riga,colonna), oppure dal suo indice, contando gli elementi della matrice per colonna

3 DEI - Univ. Padova (Italia) Accedere agli elementi delle matrici: indici >> A = [ ]; Una matrice può essere vista come una sequenza di elementi in memoria che Matlab dispone in righe e colonne. Ma è possibile anche accedere ad un elemento conoscendone la posizione (lindice) nella sequenza in memoria In matrice In sequenza Colonna Riga Indice

4 DEI - Univ. Padova (Italia) Accedere agli elementi delle matrici: indici >> A = [ ]; >> A(1,3) ans= 3 >> A(7) ans= 3 Per accedere allelemento 3: 1)posso utilizzare le coordinate riga-colonna, 2)Oppure posso utilizzare il suo indice sequenziale

5 DEI - Univ. Padova (Italia) Sottomatrici >>A =[ ]; Per accedere ad un elemento: >>x=A(3,4) assegnera 12 a x Per accedere ad unintera riga, >>A(2,:) restituira [ ] Per accedere ad unintera colonna, >>A(:,3) restituira [3 7 11] Per accedere ad una sottomatrice, ad es.la 2X2 in basso a destra >>A(2:3,3:4) restituira [ ]

6 DEI - Univ. Padova (Italia) Dimensioni delle variabili Vettori >>length(X); restituisce la lunghezza del vettore X o il numero di colonne di X Matrici >>[M,N]=size(X); righe e colonne della matrice X >>size(X,1); numero di righe della matrice X >>size(X,2); numero di colonne della matrice X

7 DEI - Univ. Padova (Italia) Stringhe Le stringhe sono sequenze di caratteri. La stringa èdelimitate dal singolo apice >> str='Introduzione a Matlab' str = Introduzione a Matlab >>

8 DEI - Univ. Padova (Italia) Costruzione di vettori e matrici >> x=0:2.5:10 x = >> Vettori e Matrici con elementi equispaziati

9 DEI - Univ. Padova (Italia) Costruzione di vettori e matrici Loperatore : serve per indicare un intervallo di valori. Se non ha estremi come nellistruzione >>x(1,:) vuol dire prendi da x la riga 1, e tutte le colonne Se prima e dopo loperatore ci sono dei valori come in: >> 0.5:5 ans = vuol dire crea un vettore di numeri che cominci con 0.5, siano spaziati di 1 e abbia come estremo superiore 5 Se tra i due estremi dellintervallo cè un valore, esso indica lo spazio tra un valore e quello successivo: >> 1.3:0.3:2 ans =

10 DEI - Univ. Padova (Italia) Costruzione di vettori e matrici >> x = linspace(Min, Max, N) >> x = logspace(Min, Max, N) Conoscendo il numero di elementi necessari N, e gli estremi Min e Max dellintervallo che si vuole campionare, si può utilizzare la funzione linspace(). Per spaziare in scala logaritmica si utilizza logspace()

11 DEI - Univ. Padova (Italia) Costruzione di vettori e matrici >>x=linspace(1,5,10) x = >> >>x=logspace(1,2,5) x = >>

12 DEI - Univ. Padova (Italia) Operatori logici Gli operatori logici più comuni sono: & : and logico | : or logico ~ : not logico >> a=[0,1,0,3]; >> b=[1,1,0,3]; >> a | b ans = >> a & b ans = >> ~b ans =

13 DEI - Univ. Padova (Italia) Operatori relazionali Gli operatori relazionali più comuni sono: == uguale ~= diverso da < minore di <= minore o uguale >maggiore >=maggiore o uguale >> a=[0,1,2,3]; >> b=[1,1,3,3]; >> a>b ans = >> b>a ans = >>

14 DEI - Univ. Padova (Italia) Operatori booleani In generale gli operatori logici e relazionali si chiamano booleani, perché il risultato della loro applicazione può avere assumere solo due valori: - 1 equivalente a VERO - 0 equivalente a FALSO ATTENZIONE! Quando applico operatori booleani a dei vettori o a delle matrici, loperatore è applicato ad ogni elemento della matrice se è unario, e a coppie di elementi corrispondenti delle matrici se è binario

15 DEI - Univ. Padova (Italia) Operatori logici: esempio >> a=[0,1,0,3]; >> b=[1,1,0,3]; Controlla se almeno uno tra gli elementi corrispondenti di a e b è diverso da 0: >> a | b ans = Controlla se entrambi gli elementi corrispondenti di a e b sono diversi da 0: >> a & b ans = Controlla quale elemento b è non diverso da zero, cioè uguale a 0: >> ~b ans =

16 DEI - Univ. Padova (Italia) Operatori relazionali: esempio >> a=[0,1,0,3]; >> b=[1,1,1,3]; Controlla quale elemento di a è maggiore stretto del suo corripondente in b >> a>b ans = Controlla quale elemento di b è maggiore stretto del suo corripondente in a >> b>a ans =

17 DEI - Univ. Padova (Italia) Ricerca di elementi Per trovare le coordinate di elementi di una matrice rispondenti a determinate caratteristiche posso utilizzare la funzione find(), che restituise lindice sequenziale degli elementi nel caso si richieda un solo valore in uscita, e le coordinate riga-colonna nel caso se ne richiedano due: indice = find(expr); [riga, colonna] = find (expr);

18 DEI - Univ. Padova (Italia) Ricerca di elementi: esempio >> A=[0,1,0,3; 2,4,6,8] A = >> n=find(A>3) n = >> >>[r,c]=find(A>3) r = 2 c = >>

19 DEI - Univ. Padova (Italia) Tipi di m-files: scripts Uno script è un file di testo con estensione.m che contiene una sequenza di istruzioni Matlab. Per eseguire le istruzioni contenute nello script bisogna scrivere il nome del file (senza lestensione.m) al prompt di Matlab. Sono anche chiamati M-files Sono utili per automatizzare dei blocchi di istruzioni Matlab che si devono eseguire ripetitivamente dal prompt dei comandi. Possono operare su variabili e dati presenti nello spazio di lavoro, e crearne di nuovi. Qualsiasi variabile creata nello script rimane nel workspace, ed ogni modifica a variabili nel workspace rimane alla fine dello script

20 DEI - Univ. Padova (Italia) Tipi di m-files: funzioni Una funzione di Matlab è anchessa un file di testo con estensione.m che contiene una sequenza di istruzioni Matlab. Si differenzia da uno script in quanto il suo scopo principale è quello di produrre uno o più valori a partire da determinati dati di ingresso (cosa che stabilisce un'analogia con l'omonimo concetto della matematica), Sono utili per automatizzare dei blocchi di istruzioni Matlab che si devono eseguire ripetitivamente dal prompt dei comandi. Possono operare solo sui dati forniti come ingresso alla funzione e sulle variabili locali create allinterno della funzione Qualsiasi variabile creata nella funzione, ad eccezione di quelle esplicitamente restituite, sono eliminate con il termine della funzione (località delle variabili)

21 DEI - Univ. Padova (Italia) Tipi di m-files: funzioni Un m-file che contiene una funzione deve avere come prima istruzione la dichiarazione della funzione: function [out1, out2,...] = nomefunzione(in1, in2,...) Seguono poi le istruzioni che possono agire solo su – variabili create allinterno della funzione –Parametri di ingresso in1, in2, … Devono essere create le variabili di uscita out1, out2, … Il nome dellm-file deve essere uguale al nome della funzione nomefunzione

22 DEI - Univ. Padova (Italia) Funzioni esempio: File miestat.m % Creo una funzione che calcola % media e deviazione standard % di un vettore vect function [ m, s ] = miestat(vect); % Calcolo la media m = sum(vect)/length(vect); % Calcolo la dev. standard var = sum((vect-m).^2)/(length(vect)-1); s=sqrt(var); return

23 DEI - Univ. Padova (Italia) Funzioni esempio: % Creo una funzione che calcola % media e deviazione standard % di un vettore vect function [ m, s ] = miestat(vect); … return I commenti cominciano con % E parte di codice che non viene interpretato come istrizioni, e non è eseguito Indica che si sta definendo una funzione Indica la fine della funzione Argomenti di ingresso alla funzione. Sono gli unici dati presenti allesterno del codice della funzione utilizzabili e conosciuti anche allinterno Valori di uscita della funzione. Sono le uniche variabili definite allinterno della funzione che saranno disponibili una volta terminata la funzione Nome identificativo della funzione

24 DEI - Univ. Padova (Italia) Utilizzare una funzione Al prompt dei comandi >> x=[1,2,3,4,8,6]; >> [media, stdev]=miestat(x); >> media media= 4 >> stdev stdev = >>

25 DEI - Univ. Padova (Italia) Utilizzare una funzione >> x=[1,2,3,4,8,6]; >> media=miestat(x); >> media media= 4 >> ATTENZIONE! Se si assegnano alluscita di una funzione meno variabili di quelle che potrebbe restituire, quelle non assegnate saranno perdute. Ad esempio se utilizzando la funzione miestat assegnassi una sola variabile alla sua uscita, avrei:

26 DEI - Univ. Padova (Italia) Ordinamento: selection-sort 1)Seleziona lelemento più piccolo nellarray 2)Scambia lelemento selezionato con il primo 3)Ordina la parte restante dell array, cioè riduco la parte di array da considerare, escludendo le prime posizioni già ordinate

27 DEI - Univ. Padova (Italia) Ordinamento: selection-sort 27 prova[0] prova[1]prova[2]prova[3]prova[4] Passo 1a: trovo il minimo dellarray. 22 prova[0] prova[1]prova[2]prova[3]prova[4] minimo Passo 1b: scambio il minimo con il primo elemento.

28 DEI - Univ. Padova (Italia) Ordinamento: selection-sort 27 prova[0] prova[1]prova[2]prova[3]prova[4] Passo 2: riduco larray da considerare per lordinamento e ripeto il passo 1 27 prova[0] prova[1]prova[2]prova[3]prova[4] Parte ordinata

29 DEI - Univ. Padova (Italia) Ordinamento: selection-sort 27 prova[0] prova[1]prova[2]prova[3]prova[4] Passo 2: riduco larray da considerare per lordinamento e ripeto il passo 1 27 prova[0] prova[1]prova[2]prova[3]prova[4] Parte ordinata

30 DEI - Univ. Padova (Italia) Selection sort in Matlab function yout=SelectionSort(xin); yout=xin; n=length(yout); for ct=1:n-1, [val,pos]=findmin(yout,ct); yout(pos)=yout(ct); yout(ct)=val; end; return; function [val,pos]=findmin(xin,ind) pos=ind; val=xin(ind); for ct=ind:length(xin), if(xin(ct)


Scaricare ppt "DEI - Univ. Padova (Italia) Creazione di matrici >> A = [1 2 3; 4 5 6; 7 8 9]; Delimititatore di matriceDelimititatore di riga >> A = [... 1 2 3 4 5 6."

Presentazioni simili


Annunci Google