MATLAB - Introduzione
Antonino Polimeno
antonino.polimeno@unipd.it
MATLAB - 1
Da Wikipedia
MATLAB (abbreviazione di Matrix Laboratory) è un ambiente per il calcolo numerico e l'analisi statistica scritto in C, che comprende anche l'omonimo linguaggio di programmazione creato dalla MathWorks.
MATLAB consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi.
MATLAB è usato da milioni di persone nell'industria e nelle università per via dei suoi numerosi strumenti a supporto dei più disparati campi di studio applicati e funziona su diversi sistemi operativi, tra cui Windows, Mac OS, GNU/Linux e Unix.
MATLAB - 2
− Ambiente software per il calcolo numerico
− Esempi:
− algebra lineare
− equazioni non lineari
− equazioni differenziali ordinarie
− equazioni differenziali alle derivate parziali
− ottimizzazione (minimi, massimi)
− trasformate
− analisi di dati
− modelling di sistemi
− Software alternativi
− SageMath (Linux)
http://www.sagemath.org/index.html
− Scilab (Windows, Mac, Linux) http://www.scilab.org/
− Octave (Linux)
https://www.gnu.org/software/octave/
− Software complementari
− Mathematica (simbolico, proprietario, Winfows, Mac, Linux)
https://www.wolfram.com/mathematica/
− Maple (simbolico, proprietario, Winfows, Mac, Linux)
http://www.maplesoft.com/products/maple/
Workspace
(lista delle variabili)
Command window (istruzioni e risultati)
File (lista dei file:
script, dati etc.)
MATLAB - 3
MATLAB - 4
− Help e search
− Manuali online:
− getstart.pdf (206 pagine)
− math pdf (642 pagine)
− matlab_prog.pdf (1218 pagine - LOTR ne ha 1178, la Bibbia 1281 … )
help
search
https://it.mathworks.com/help/matlab/getting-started-with-matlab.html
Variabili - 1
− Le variabili sono immagazzinate come matrici numeriche, di vario tipo: int8, uint8, int16, uint16, double.
− Tutte le operazioni sono effettuate in doppia precisione (8 byte per numero)
− Sono possibili tipi con meno di 2 byte per numero (utili per lo storage dei dati)
− Comandi utili:
− who, whos, per vedere le variabili nel workspace
− save, load, salvare or scaricare variabili in un file *.mat
− clear, per svuotare il workspace
− Nessuna dichiarazione o inizializzazione
− Definizione diretta nella command window >> x=12; % x ha il valore 12
Variabili - 2
Matlab prompt
operatore assign (assegnazione)
niente output visuale
commento
N.B. Maiuscole e minuscole sono distinte! A e a sono variabili diverse
Workspace
>> b=10;
>> c=a+b c =
22
>> whos
Name Size Bytes Class
a 1x1 8 double array
b 1x1 8 double array
c 1x1 8 double array
Grand total is 3 elements using 24 bytes
>>
>> clear a b; % delete a and b from workspace
>> whos
>> clear all; % delete all variables from workspace
>> whos
operazione
controllo
clear workspace
Matrici - 1
− Definizione
>>A=[1 2 3; 4 5 6; 7 8 9];
matrice 3x3 definita come riga;riga;riga− Matrici speciali
− zeros(r,c), ones(r,c), eye(r,c), rand(r,c)
…− Valori degli elementi di matrice
− A(2,3)
dà il valore dell’elemento 2,3, cioè 6− A(8)
dà il valore dell’ottavo elemento (seguendo le colonne), cioè 8− A(:,2) dà la seconda colonna
Matrici - 2
− Operazioni di base sulle matrici
− +,-,*,/,^,’,sqrt,sin,cos,
etc.− Per operare sugli elementi usate il ‘dot’:
− .*, ./, .^
etc.− size(A)
dimensione− sum(A)
vettore riga con le somme delle colonne− sum(sum(A))
somma di tutti gli elementi− help elmat
per altre operazioniOperazioni su matrici
>> A'
trasposta coniugata>> B*A
moltiplicazione>> B.*A
moltiplicazione fra elementi>> B/A
‘divisione’ (vedi oltre)>> B./A
divisione fra elementi>>[B A]
unione di matrice (in orizzontale)>>[B; A]
unione di matrice (in verticale)Script, function - 1
→ L’editor di Matlab permette di creare e modificare script (programmi che contengono una serie di comandi Matlab)
− Uno script può essere salvato come file *.m ed essere
richiamato ed eseguito in ogni momento
− Come quasi tutti i linguaggi di programmazione, si possono creare
insiemi di comandi ‘autonomi’ (function) che possono essere poi essere utilizzati in più programmi (script)
− Le funzioni accettano variabili in input e restituiscono altre variabili in output
− Le funzioni non cambiano le variabili nel workspace
− Le funzioni hanno la keyword function
− Le funzioni sono scritte nell’editor e salvate come file *.m
− Il filename di una funzione è il nome con cui viene chiamata
− Il comando open permette di aprire ed editare una funzione, anche le funzioni ‘native‘ (built-in).
Script, function - 2
Script, function - 3
Grafica
>> figure % create new figure
>> t=0:pi/12:8*pi;
>> y=cos(t);
>> plot(t,y)
>> x=-2:.1:2;
>> y=-3:.1:3;
>> [X,Y]=meshgrid(x,y); % define the grid
>> Z=X.*exp(-X.^2-Y.^2);
>> surf(X,Y,Z)