La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Creazione di matrici Delimititatore di riga Delimititatore di matrice

Presentazioni simili


Presentazione sul tema: "Creazione di matrici Delimititatore di riga Delimititatore di matrice"— Transcript della presentazione:

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

2 Accedere agli elementi delle matrici: coordinate
1 2 3 4 5 6 7 8 9 ]; >> A(2,1) ans = 4 >> A(2) 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 DEI - Univ. Padova (Italia)

3 Accedere agli elementi delle matrici: indici
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 (l’indice) nella sequenza in memoria >> A = [... 1 2 3 4 5 6 7 8 9 ]; In matrice In sequenza Colonna Riga 1 2 3 Indice 1 2 3 4 5 6 7 8 9 1 4 7 2 5 8 3 6 9 DEI - Univ. Padova (Italia)

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

5 Sottomatrici Per accedere ad un elemento:
>>x=A(3,4) assegnera’ 12 a x Per accedere ad un’intera riga, >>A(2,:) restituira’ [ ] Per accedere ad un’intera 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’ [7 8 11 12] >>A =[ ]; DEI - Univ. Padova (Italia)

6 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 DEI - Univ. Padova (Italia)

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

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

9 Costruzione di vettori e matrici
L’operatore “ : ” serve per indicare un intervallo di valori. Se non ha estremi come nell’istruzione >>x(1,:) vuol dire prendi da x la riga 1, e tutte le colonne Se prima e dopo l’operatore 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 dell’intervallo c’è un valore, esso indica lo spazio tra un valore e quello successivo: >> 1.3:0.3:2 ans = DEI - Univ. Padova (Italia)

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

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

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

13 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 >> DEI - Univ. Padova (Italia)

14 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, l’operatore è applicato ad ogni elemento della matrice se è unario, e a coppie di elementi corrispondenti delle matrici se è binario DEI - Univ. Padova (Italia)

15 Operatori logici: esempio
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 Controlla quale elemento b è non diverso da zero, cioè uguale a 0: >> ~b >> a=[0,1,0,3]; >> b=[1,1,0,3]; DEI - Univ. Padova (Italia)

16 Operatori relazionali: esempio
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 >> a=[0,1,0,3]; >> b=[1,1,1,3]; DEI - Univ. Padova (Italia)

17 Ricerca di elementi Per trovare le coordinate di elementi di una matrice rispondenti a determinate caratteristiche posso utilizzare la funzione find(), che restituise l’indice 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); DEI - Univ. Padova (Italia)

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

19 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 l’estensione .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 DEI - Univ. Padova (Italia)

20 Tipi di m-files: funzioni
Una funzione di Matlab è anch’essa 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 all’interno della funzione Qualsiasi variabile creata nella funzione, ad eccezione di quelle esplicitamente restituite, sono eliminate con il termine della funzione (località delle variabili) DEI - Univ. Padova (Italia)

21 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 all’interno della funzione Parametri di ingresso in1, in2, … Devono essere create le variabili di uscita out1, out2 , … Il nome dell’m-file deve essere uguale al nome della funzione nomefunzione DEI - Univ. Padova (Italia)

22 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 DEI - Univ. Padova (Italia)

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

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

25 Utilizzare una funzione
ATTENZIONE! Se si assegnano all’uscita 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: >> x=[1,2,3,4,8,6]; >> media=miestat(x); >> media media= 4 >> DEI - Univ. Padova (Italia)

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

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

28 Ordinamento: selection-sort
Passo 2: riduco l’array da considerare per l’ordinamento e ripeto il passo 1 prova[0] prova[1] prova[2] prova[3] prova[4] 1 87 14 27 22 Parte ordinata prova[0] prova[1] prova[2] prova[3] prova[4] 1 87 14 27 22 DEI - Univ. Padova (Italia)

29 Ordinamento: selection-sort
Passo 2: riduco l’array da considerare per l’ordinamento e ripeto il passo 1 prova[0] prova[1] prova[2] prova[3] prova[4] 1 14 87 27 22 Parte ordinata prova[0] prova[1] prova[2] prova[3] prova[4] 1 14 87 27 22 DEI - Univ. Padova (Italia)

30 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)<val), val=xin(ct); pos=ct; end; return; DEI - Univ. Padova (Italia)


Scaricare ppt "Creazione di matrici Delimititatore di riga Delimititatore di matrice"

Presentazioni simili


Annunci Google