MATLAB - Introduzione€¦ · MATLAB consente di manipolare matrici, visualizzare funzioni e dati,...

15
MATLAB - Introduzione Antonino Polimeno [email protected]

Transcript of MATLAB - Introduzione€¦ · MATLAB consente di manipolare matrici, visualizzare funzioni e dati,...

Page 1: MATLAB - Introduzione€¦ · MATLAB consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi.

MATLAB - Introduzione

Antonino Polimeno

[email protected]

Page 2: MATLAB - Introduzione€¦ · MATLAB consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi.

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.

Page 3: MATLAB - Introduzione€¦ · MATLAB consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi.

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/

Page 4: MATLAB - Introduzione€¦ · MATLAB consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi.

Workspace (lista delle variabili)

Command window (istruzioni e risultati)

File (lista dei file:

script, dati etc.)

MATLAB - 3

Page 6: MATLAB - Introduzione€¦ · MATLAB consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi.

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

Page 7: MATLAB - Introduzione€¦ · MATLAB consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi.

− 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

Page 8: MATLAB - Introduzione€¦ · MATLAB consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi.

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

Page 9: MATLAB - Introduzione€¦ · MATLAB consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi.

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

Page 10: MATLAB - Introduzione€¦ · MATLAB consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi.

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 operazioni

Page 11: MATLAB - Introduzione€¦ · MATLAB consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi.

Operazioni 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)

Page 12: MATLAB - Introduzione€¦ · MATLAB consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi.

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

Page 13: MATLAB - Introduzione€¦ · MATLAB consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi.

− 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

Page 14: MATLAB - Introduzione€¦ · MATLAB consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi.

Script, function - 3

Page 15: MATLAB - Introduzione€¦ · MATLAB consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi.

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)