![Page 1: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/1.jpg)
DEI - Univ. Padova (Italia)
Programmare
Definire una sequenza di istruzioni che specificano come effettuare una elaborazione
Le istruzioni devono essere date in un linguaggio “comprensibile” dal calcolatore.
In generele questi linguaggi mettono a disposizione almeno i seguenti tipi di istruzioni:
InputOutputMatematicheCondizionaliRipetizione
![Page 2: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/2.jpg)
DEI - Univ. Padova (Italia)
Programmare in MatLab
In MatLab ci sono due modi per scrivere le istruzioni e farle eseguire:
Modalità interattiva: ogni istruzione scritta viene valutata dall’interprete ed immediatamente elaborata
Script: in un file di testo con estensione “.m” si scrive una sequenza di istruzioni. Si chiede che venga eseguita tutta la sequenza
![Page 3: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/3.jpg)
DEI - Univ. Padova (Italia)
Cos’è MatLab
MatLab = Matrix Laboratory
Utilizza come oggetti fondamenteali da gestire le matrici:
Una matrice NxM indica una matrice con N righe ed M colonne,Cioè un oggetto che contiene NxM elementi disposti ordinatamentesu N righe ed M colonne, ed in cui ogni elemento è identificato dallesue coordinate.
Matlab consente:
L’accesso ad un ambiente di calcolo L’utilizzo di funzioni specializzate La programmazione
![Page 4: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/4.jpg)
DEI - Univ. Padova (Italia)
Perchè MatLab
• Facilità d’uso:– Ha moltissime funzioni disponibili– E’ possibile programmare funzioni ad hoc– Non ci si deve preoccupare di programmazione
a basso livello
• Esportabilità– Le funzioni MatLab sono file di testo
![Page 5: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/5.jpg)
DEI - Univ. Padova (Italia)
Lanciare l’ambiente Matlab
Digitare dalla shell di comandi:
>> matlab
Oppure fare doppio click sull’icona di Matlab presente sul desktop
![Page 6: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/6.jpg)
DEI - Univ. Padova (Italia)
La Command Window
Spazio di lavoro(workspace)
Pannelli ausiliari
![Page 7: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/7.jpg)
DEI - Univ. Padova (Italia)
Istruzione: linea di comando
stampa la somma di –1.42 e 3.27 >> –1.42+3.27
ans =
1.8500
>>
Cosa voglio fareIstruzione Matlabda digitare al prompt dellospazio di lavoro
![Page 8: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/8.jpg)
DEI - Univ. Padova (Italia)
Command Window in modalità interattiva
![Page 9: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/9.jpg)
DEI - Univ. Padova (Italia)
Istruzione: script
stampa la somma di –1.42 e 3.27
A = –1.42B = 3.27C = A + Bdisp(C)
Cosa voglio fare File test.m
>> test
Dal prompt dello spazio di lavoro
![Page 10: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/10.jpg)
DEI - Univ. Padova (Italia)
Punti e virgole
ATTENZIONE!Il separatore tra la parte intera e frazionaria di un numero è il punto !
La virgola indica oggetti diversi di una lista …
>>> 1200300
ans =
1200300
>>> 1,200,300 ??
![Page 11: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/11.jpg)
DEI - Univ. Padova (Italia)
Le variabili sono nomi che si riferiscono ad un valore.
L’istruzione di assegnazione crea una variabile e le assegna un valore
Gli ingredienti: variabili
>> A = –1.42;>> B = 3.27;>> C = ‘Sequenza di caratteri’;
![Page 12: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/12.jpg)
DEI - Univ. Padova (Italia)
Operazioni di assegnazione
>> a=18
a =
18
>>
Alla variabile “a” è assegnato il valore 18
Matlab fa eco del risultato della operazione
Il prompt segnala che Matlab è pronto perun’altra operazione
>> a=18;>>
Terminando una operazione con “;” Matlabnon fa eco.
![Page 13: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/13.jpg)
DEI - Univ. Padova (Italia)
Nomi di variabili
Le variabili possono avere qualsiasi nome a patto che:
Non inizi con un numero Non contenga i caratteri specialii $, %, @, #, !,
&, ‘, Non contenga operatori:*,+,-,/,^
Non devono essere parole riservate, tra cui:break, catch, class, continue, if, else, for, global, return, try, while …
Non possono contenere spazi
![Page 14: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/14.jpg)
DEI - Univ. Padova (Italia)
Operazioni aritmetiche
>>> 20+32;>>> A=5;>>> A^2;
Gli operatori aritmetici e di elevamento a potenza (^) hanno l’usuale significato per le operazioni fra numeri in Matlab:
![Page 15: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/15.jpg)
DEI - Univ. Padova (Italia)
Precedenze
>> (20+32)^2
L’ordine di esecuzione delle operazioni segue le regole di precedenza matematiche.Per modificare l’ordine devo utilizzare vle parentesi:
![Page 16: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/16.jpg)
DEI - Univ. Padova (Italia)
Gestione dello spazio di lavoro
who produce la lista delle variabili nel workspace
whos la lista contiene informazioni su tipo e dimensioni
clear elimina tutte le variabili nel workspace
clear <nomevariabile> cancella solo la variabile con nome nomevariabile
![Page 17: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/17.jpg)
DEI - Univ. Padova (Italia)
Salvataggio e Caricamento
save <nomefile> salva nel file nomefile.mat tutte le variabili del workspace
load < nomefile > carica nel workspace tutte le variabili presenti in nomefile.mat
save < nomefile > < nomevar > salva nel file nomefile.mat le variabili in nomevar
load < nomefile > < nomevar > carica nel workspace le variabili nomevar del file nomefile.mat
Osservazioni:con l’opzione –ASCII i comandi precedenti leggono/salvano file di testo
è possibile utilizzare la forma funzionale s=load(nomefile);
![Page 18: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/18.jpg)
DEI - Univ. Padova (Italia)
Richiamare i comandi: limitare la fatica inutile
>> <FrecciaSu>,<FrecciaGiu> Richiama i comandi già dati dalla Command Window
>> test + <FrecciaSu>,<FrecciaGiu> Richiama i comandi già dati dalla Command Window che cominciano con test
![Page 19: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/19.jpg)
DEI - Univ. Padova (Italia)
Help di Matlab
![Page 20: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/20.jpg)
DEI - Univ. Padova (Italia)
Help di Matlab
>> help NomeComando Help in linea per il comando NomeComando
>> help min MIN Smallest component. For vectors, MIN(X) is the smallest element in X. For matrices, MIN(X) is a row vector containing the minimum element from each column. For N-D arrays, MIN(X) operates along the first non-singleton dimension. [Y,I] = MIN(X) returns the indices of the minimum values in vector I. If the values along the first non-singleton dimension contain more than one minimal element, the index of the first one is returned. MIN(X,Y) returns an array the same size as X and Y with the smallest elements taken from X or Y. Either one can be a scalar. [Y,I] = MIN(X,[],DIM) operates along the dimension DIM. When complex, the magnitude MIN(ABS(X)) is used, and the angle ANGLE(X) is ignored. NaN's are ignored when computing the minimum. Example: If X = [2 8 4 then min(X,[],1) is [2 3 4], 7 3 9] …
>>
![Page 21: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/21.jpg)
DEI - Univ. Padova (Italia)
... e quando non si sa che pesci pigliare
>> lookfor NomeComando Ricerca in tutto l’help in linea la parola NomeComando
>> lookfor meanRETmeandir.m: % Compute the mean direction of the barycenters distant between 20 andMEAN Average or mean value.LMS Construct a least mean square (LMS) adaptive algorithm object. EQ_GETOPT Computes Equalizer coefficients that minimizes the Mean SquareGWNOISE generate valid mean value, standard deviation and seeds for GWNOISE block. DSPBLKMEAN Signal Processing Blockset Mean block helper function. DSPBLKMEAN2 Signal Processing Blockset Mean block helper function.MEAN2 Compute mean of matrix elements.ipexhistology.m: %% Color-Based Segmentation Using K-Means ClusteringDMAE Mean absolute error performance derivative function.DMSE Mean squared error performance derivatives function.DMSEREG Mean squared error w/reg performance derivative function.MAE Mean absolute error performance function.MSE Mean squared error performance function.
……
![Page 22: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/22.jpg)
DEI - Univ. Padova (Italia)
Operazioni di confronto
>> 20>32
ans =
0>>
E’ possibile dover confrontare se due variabili siano uguali, diverse, oppure se una sia maggiore dell’altra.Le istruzioni che operano questi confronti sono espressioni booleane in quanto restituiscono un valore binario (vero o falso).Il valore vero corrisponde al numero 1Il valore falso corrisponde al numero 0
![Page 23: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/23.jpg)
DEI - Univ. Padova (Italia)
Operatori di confronto
> maggiore< minore>= maggiore o uguale<= minore o uguale== uguale~= diverso ~ negazione
ATTENZIONE!L’operatore “=“ indica una assegnazione, mentre l’operatore logico di controllo dell’uguaglianza è “==“
![Page 24: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/24.jpg)
DEI - Univ. Padova (Italia)
Operatori di confronto
Ricordando che 0 corrisponde a vero e 1 corrisponde a falso:
>> while 1,disp(‘Sono all’interno del ciclo’);
end;
entra in un ciclo infinito
![Page 25: DEI - Univ. Padova (Italia) Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere](https://reader035.vdocuments.pub/reader035/viewer/2022070313/5542eb77497959361e8e1d81/html5/thumbnails/25.jpg)
DEI - Univ. Padova (Italia)
Operatori di confronto
Ricordando che 0 corrisponde a vero e 1 corrisponde a falso:
>> a=2; >> while (a=1),
disp(‘Sono all’interno del ciclo’);a=a+a;
end;
entra anch’esso in un ciclo infinito.Perchè?