Matlab
• MATLAB (MATrix LABoratory) è un ambiente
interattivo ad alto livello che consente di
costruire e gestire facilmente matrici e, come
casi particolari, vettori e scalari.
• La struttura dati di base è la matrice: ciò significa
che durante l’elaborazione ogni quantità viene
trattata dall’ambiente di calcolo come una
matrice di dimensione nxm.
(un vettore è una matrice 1xn, mentre uno scalare
è gestito come una matrice 1x1).
Non solo matrici…
• MATLAB fornisce un ambiente di calcolo,
visualizzazione e programmazione scientifica, in
cui è possibile:
• calcolare direttamente espressioni
matematiche;
• utilizzare il semplice ambiente di
programmazione per costruire i propri algoritmi;
• sfruttare algoritmi di base già implementati built-in function -
Altre funzionalità di MATLAB
•
•
•
•
•
•
•
Matematica e calcolo
Sviluppo di procedure e applicazioni
Modellistica, simulazione e prototipizzazione
Analisi di dati, esplorazione e visualizzazione
Disegno industriale e scientifico
Costruzione di interfacce utente
TOOLBOX vari
MATLAB linguaggio per
programmare.
• E’ un linguaggio interpretato e non compilato:
questo significa che le istruzioni vengono
tradotte in linguaggio macchina (il linguaggio
“capito” dal processore) e subito eseguite una
per volta.
• Utilizzando C, Fortran, C++, la traduzione da
linguaggio ad alto livello a linguaggio macchina
avviene invece nel processo di compilazione, in
cui tutto il programma viene tradotto in
linguaggio macchina e poi eseguito.
Ambiente di sviluppo Matlab
• Per lanciare MATLAB da ambiente Windows
basta cliccare due volte con il mouse sull’icona
corrispondente.
• La finestra che appare quando si esegue
MATLAB viene chiamata desktop.
• Il simbolo prompt >> indica che il calcolatore è
pronto a ricevere le istruzioni e ad eseguirle.
• Per uscire dall’ambiente basta digitare
>> quit
Command Window: detta anche
finestra dei comandi, è la parte del
desktop in cui si scrivono i comandi
MATLAB che devono essere
eseguiti. Permette pertanto
all’utente di comunicare con il
programma MATLAB.
Command History:
questa finestra mostra
tutti i comandi
precedentemente
immessi nella finestra dei
comandi.
Il manuale (o help)
• Si puo’ accedere al manuale o tramite il menu
Help → MATLAB Help (guida in linea) o digitando help
dalla Command Window (help generale di tutte le
funzioni).
• Per visualizzare l’help di un singolo comando digitare
help <nomecomando> dalla Command Window
(esempio help plot).
• Digitando lookfor <keyword> si attiva invece la ricerca
di funzioni basate su una parola chiave.
• Attraverso il comando doc si accede direttamente alla
• documentazione online di MATLAB.
• Menù Help -> Matlab Help
>> help plot
PLOT Linear plot.
PLOT(X,Y) plots vector Y versus vector X. If X or Y is a matrix,
then the vector is plotted versus the rows or columns of the matrix,
whichever line up. If X is a scalar and Y is a vector, disconnected
line objects are created and plotted as discrete points vertically at
X.
PLOT(Y) plots the columns of Y versus their index.
If Y is complex, PLOT(Y) is equivalent to PLOT(real(Y),imag(Y)).
In all other uses of PLOT, the imaginary part is ignored.
Various line types, plot symbols and colors may be obtained with
PLOT(X,Y,S) where S is a character string made from one element
from any or all the following 3 columns:
b blue
. point
g green
o circle
r red
x x-mark
c cyan
+ plus
m magenta
* star
y yellow
s square
k black
d diamond
v triangle (down)
^ triangle (up)
< triangle (left)
> triangle (right)
p pentagram
h hexagram
-
solid
: dotted
-. dashdot
-- dashed
(none) no line
For example, PLOT(X,Y,'c+:') plots a cyan dotted line with a plus
at each data point; PLOT(X,Y,'bd') plots blue diamond at each data
point but does not draw any line.
PLOT(X1,Y1,S1,X2,Y2,S2,X3,Y3,S3,...) combines the plots defined by
the (X,Y,S) triples, where the X's and Y's are vectors or matrices
and the S's are strings.
For example, PLOT(X,Y,'y-',X,Y,'go') plots the data twice, with a
solid yellow line interpolating green circles at the data points.
The PLOT command, if no color is specified, makes automatic use of
the colors specified by the axes ColorOrder property. The default
ColorOrder is listed in the table above for color systems where the
default is blue for one line, and for multiple lines, to cycle
through the first six colors in the table. For monochrome systems,
PLOT cycles over the axes LineStyleOrder property.
If you do not specify a marker type, PLOT uses no marker.
If you do not specify a line style, PLOT uses a solid line.
PLOT(AX,...) plots into the axes with handle AX.
PLOT returns a column vector of handles to lineseries objects, one
handle per plotted line.
The X,Y pairs, or X,Y,S triples, can be followed by
parameter/value pairs to specify additional properties
of the lines. For example, PLOT(X,Y,'LineWidth',2,'Color',[.6 0 0])
will create a plot with a dark red line width of 2 points.
Example
x = -pi:pi/10:pi;
y = tan(sin(x)) - sin(tan(x));
plot(x,y,'--rs','LineWidth',2,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','g',...
'MarkerSize',10)
See also plottools, semilogx, semilogy, loglog, plotyy, plot3, grid,
title, xlabel, ylabel, axis, axes, hold, legend, subplot, scatter.
Reference page in Help browser
doc plot
Command window
• >> doc plot
Le variabili
• Variabile : nome associato ad una entità (scalare, vettore, matrice)
che contiene dati.
• I nomi scelti devono rispettare le seguenti regole di sintassi:
1. possono contenere solo lettere, cifre e il carattere di
sottolineatura (“_”);
2. non possono iniziare con una cifra;
3. non si possono utilizzare parole riservate di MATLAB.
Matlab è un linguaggio case sensitive, ossia distingue fra lettere
maiuscole e minuscole: la variabile A è quindi diversa dalla variabile
a.
• La variabile utilizzata da MATLAB in default è ans.
Esempio
• Introdurre quattro variabili e calcolarne la media:
Esempi
•
•
•
•
•
Esempi:
a = sqrt(7);
c = -2+i*8.2
t = a<1
q = 'k‘
Double
Complex Double
Logical Double
Char
Formato di Output
• L'output può essere visualizzato in diversi modi,pur non influendo
sul formato che MATLAB usa per memorizzare ed elaborare i dati.
Esempi
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Esempio: >>y = 9/7
>>format short
1.28587
>>format short e
1.28587E+000
>>format short g
1.28587
>>format long
1.285871428571429
>>format long e
1.2858714285714286e+000
>>format long g
1.285871428571429
>>format rat
9/7
default: format short
Lo spazio di lavoro
• L’insieme delle variabili mantenute in memoria
durante la sessione MATLAB viene chiamata
spazio di lavoro (o workspace).
• Per aprire il Workspace Browser avete tre
possibilità:
- selezionare l’opzione Workspace dal menu
View nel desktop di MATLAB;
- cliccare su Workspace nella scheda Launch
Pad;
- digitare Workspace nel prompt della finestra
comandi.
• Utilizzando tale browser potete:
1. visualizzare e modificare le variabili dell’area di
lavoro (eventualmente cambiandone il formato
output);
2. cancellare le variabili dell’area di lavoro;
3. rappresentare graficamente le variabili dell’area
di lavoro;
4. salvare l’area di lavoro;
5. caricare un’area di lavoro precedentemente
salvata.
Selezione della cartella di lavoro
La sessione di lavoro
• Il comando
diary <nome file>
memorizza nel file ASCII < nomefile > la sessione
di lavoro (comandi dati e workspace) da quel
punto in poi in modo da poterla poi consultare
con un qualsiasi editor (es. WORD).
• Non possiamo però utilizzare il file < nomefile >
per ricaricare il lavoro fatto e continuare a
lavorarci;
• per questo si devono utilizzare i comandi save e
load.
• Ogni sessione di lavoro può essere salvata in un
file binario (nomefile.mat) mediante il comando
• save <nome file>
e ricaricata in ambiente MATLAB mediante
• load <nome file>
• Le variabili utilizzate in ogni workspace possono
essere consultate semplicemente digitando il
nome della variabile stessa.
• Per visualizzare la lista delle variabili attive nel
• corrente spazio di lavoro digitate
who
• Per informazioni più dettagliate utilizzate il
comando whos
• Ogni variabile sarà visualizzata insieme allo
spazio da essa occupato, al numero di elementi,
e al suo tipo.
• Per cancellare la variabile nomevariabile
clear <nomevariabile>
• Per cancellare tutte le variabili di una
sessione di lavoro
• clear
Per pulire il desktop di MATLAB
• clc
Altri comandi utili
• pwd visualizza la directory in cui si sta
lavorando
• dir, o ls elenca i file presenti nella
directory
• cd modifica la directory attuale
Operatori Matlab
• Operatori di base:
+ addizione
- sottrazione
/ divisione a destra 1/4=4\1=0.25
\ divisione a sinistra
^ elevamento a potenza
* moltiplicazione
• Operatori logici:
& and
| or
~ not
• Operatori relazionali:
~ = diverso
<= minore uguale
< minore
>= maggiore uguale
> maggiore
= = uguale logico
Scalari vettori e matrici
Una matrice ha dimensione nxm (n righe, m
colonne).
Un vettore ha dimensione nx1 (vettore
colonna) o 1xn (vettore riga).
Uno scalare ha dimensione 1x1.
Programmazione Matlab
• MATLAB non è un vero e proprio linguaggio di
programmazione, ma permette comunque di
realizzare programmi utilizzando le classiche
strutture di programmazione come i cicli, i flussi
di controllo e la gestione input/output.
• Due tipi di programmi, noti come “m-file”,
(es. sort.m)
–script
–function
Programmazione MATLAB
Per creare un m-file si seleziona New/m-file
dal
menu File.
Script e funzioni vengono quindi inseriti
mediante
l'editor di MATLAB. Si salva poi il file con il
suffisso .m
• N.B. Assicurarsi di aver selezionato dalla current
directory il percorso (path) relativo alla directory
(cartella) di lavoro contenente l’m-file.
Errori possibili
• Errori di sintassi
nell’uso del linguaggio di programmazione. LEGGERE il messaggio
visualizzato in rosso nella Command Window aiuta a capire che tipo di
errore è stato fatto.
• Interruzione dell’esecuzione
Sono causati da overflow, divisioni per zero,.. Istruzioni illegali
•
Errori nel risultato
Sono causati da errori o nell’algoritmo o nella sua implementazione in
MATLAB. Si correggono facendo il “debug” del programma, cioè
seguendo il programma istruzione per istruzione, prevedendo il
risultato dell’istruzione e controllando, tramite scrittura su video, i
valori interessati nell’istruzione (basta eliminare il “;” alla fine
dell’istruzione).
Script
• Uno SCRIPT è una lista di comandi MATLAB che può
eventualmente richiamare funzioni MATLAB built-in o create
utilizzando altri m-file.
- Non richiede input
- Non fornisce output espliciti
- Tutte le variabili usate sono disponibili nel workspace
- Simile ad un programma principale
- .m file deve essere disponibile nel proprio path corrente
Script
• N.B. Per eseguire i comandi contenuti nello script (cioè
• richiedere a MATLAB che il file venga interpretato) si
• richiama semplicemente il suo nome dalla Command
• Window (senza estensione .m).
Esempio
• Esempio:
• scrivere uno script che calcola la media fra 4
variabili
• • Scrivere nell’editor lo script
• a=10;
• b=20;
• c=30;
• d=40;
• media=(a+b+c+d)/4;
• • Salvare l’m-file come prova.m
• • Eseguire lo script digitando nella Command
• Window prova
• Eseguire lo script digitando nella
Command Window prova
Function
• Un m-file che contiene una funzione MATLAB si
identifica nella prima riga con la parola
function seguita da eventuali parametri di
input e di output.
• Le variabili al suo interno sono viste solo
localmente dalla funzione stessa e non
dall'eventuale m-file chiamante o dall'ambiente
MATLAB che la richiama.
Sintassi della function:
• function y = < functionname > (argomenti
input)
y variabile in output
• Quando invece le variabili output sono più di
una, la forma precedente si modifica nel modo
seguente:
• function [y,z] = <functionname> (argomenti
input)
Il nome dell'm-file deve essere il nome dato alla
funzione, eccetto chiaramente l'estensione .m
Esempio di function
function [area,perimetro]=quadrato(lato)
area=lato*lato;
perimetro=lato*4;
N.B. Questo file deve essere memorizzato
con il nome di quadrato.m
Richiamo di una function dal prompt di Matlab
Richiamo di una function da uno
script matlab
Input
• Il comando input interrompe l'esecuzione e
richiede un valore da tastiera come input. Una
volta inserito il valore, l'm-file continua la sua
esecuzione.
• Il comando echo permette di visualizzare a
video i comandi durante la loro esecuzione.
• Il comando pause interrompe l'esecuzione fino a
quando non si digita un tasto, mentre il comando
pause(n) mette in pausa l'esecuzione per n
secondi.
Echo
Disattivazione echo
• echo off dalla command window
Flussi di controllo
• if elseif else end
• switch case otherwise end
• for end
• while end
• break
if
if expression
statements
end
Se l’espressione è vera vengono eseguite le
istruzioni contenute tra if ed end.
if else end
Verificare se il numero inserito e’ pari o dispari
if expression1
statements1
elseif expression2
statements2
else
statements3
end
Se l’espressione 1 è falsa e l’espressione 2 e’
vera, Matlab esegue le istruzioni indicate da
statements2, nel caso in cui non sono vere
entrambe le espressioni 1 e 2 verranno eseguite
le statements3
• n=input('Introduci il numero n ');
if rem(n,2) < 0
disp ( 'il numero è negativo e dispari ' )
elseif rem(n,2) > 0
disp( 'il numero è positivo e dispari ' )
else
disp( 'il numero è pari' )
end
switch case otherwise end
• Il comando switch può essere usato nel
caso di if multipli:
switch rem(n,2)
case -1
disp ( 'il numero è negativo e dispari' )
case 1
disp( 'il numero è positivo e dispari' )
otherwise
disp( 'il numero è pari' )
• end