Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27...

27
Metodi di Analisi dei Dati Sperimentali AA 2009/2010 Pier Luca Maffettone Elementi di Matlab

Transcript of Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27...

Page 1: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

Met

od

i di A

nal

isi d

ei D

ati S

per

imen

tali

AA

20

09

/20

10

P

ier

Luca

Maf

fett

on

eElementi di Matlab

Page 2: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Sommario

• Introduzione • Variabili • Manipolazione di elementi • Creazione di vettori/matrici • Operazioni elementari • Funzioni vettorizzate • Funzioni predefinite e comandi utili • Gli M-file

2

Page 3: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Che cosa è Matlab

• Matlab è un linguaggio ad alto livello per il calcolo scientifico

• Integra un ambiente per il calcolo, la visualizzazione la programmazione

• Matlab è l’acronimo di MatrixLaboratory • E’ un programma che lavora prevalentemente con matrici: qualunque

oggetto introdotto è manipolato come se fosse una matrice

• Quindi l’unità fondamentale è il vettore e/o la matrice

• E’ un software numerico, non simbolico

• Contiene numerose funzioni built-in• Sono disponibili toolbox con raccolte di funzioni aggiuntive

Matlab è case sensitive!

3

Page 4: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Il layout

4

Page 5: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Help

5

Page 6: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Creare un nuovo file

6

Page 7: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Linea di comando e script

• Matlab è basato su comandi in linea

• I comandi possono anche essere letti da un file di testo

• Gli script sono file con estensione .m

• Matlab lavora con alcuni tipi di dati– La matrice n-dimensionale di numeri reali, complessi, caratteri o strutture più

complesse– I numeri interi e reali sono in doppia precisione

• Variabili– Sono case sensitive– massimo 19 caratteri– devono iniziare con una lettera e possono contenere lettere, numeri e _

7

Page 8: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Espressioni

• Matlab si basa su espressioni del tipo

• o semplicemente

– La risposta di un’espressione senza assegnazione viene scritta in una variabile di default chiamata ans

• In Matlab non esistono dichiarazioni di tipo o di dimensioni

• Matlab alloca direttamente la memoria necessaria

• Per avere informazioni si usa il comando whos

variabile=espressione

>> 100/3 ans= 33.3333

8

Page 9: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Programmazione

• I file di script vanno salvati in directory contenute nel path

• Un m-file può contenere anche una funzione

9

Page 10: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Programmazione

• Il costrutto if-then-else

10

Page 11: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Programmazione

• Il costrutto while

11

Page 12: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Programmazione

• Il costrutto for

12

Page 13: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Sottoprogrammi

13

Page 14: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Funzioni

• Una funzione è un sottoprogramma che prende input e restituisce un output.

• In Matlab il testo che definisce una funzione ha una riga di intestazione del tipo:

function[z]=nome_funzione(x,y)

14

Page 15: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Funzioni

• Chiamata di funzione dal workspace

15

Page 16: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Funzioni

• E’ possibile richiamare in una function un’altra function: bisogna però assicurarsi che le function siano nella stessa cartella

• Le variabili interne alle function NON SONO passate nella sessione principale di Matlab

• Ciò può essere fatto dichiarando tali variabili come globali – Si utilizza il comando“global”, seguito dal nome delle variabili globali – E’ necessario dichiarare come globali le variabili SIA nella function SIA nella

sessione principale di Matlab – Esempio: vogliamo che la variabile y della function “media” sia di tipo globale – Scriviamo “global y” nella Command Window– Si noti che nel Workspace compare la variabile y – Questa variabile ancora non èstata definita per cui non sono state assegnate le

dimensioni – Nel file della funzione nel rigo dopo la definizione della funzione si scrive “global y”

16

Page 17: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Matrici

• Vettori

• NB: il “;” alla fine della riga evita la stampa a video del risultato• Con l’operatore ‘ (apice) si opera la trasposizione

• Matrice

Vettore riga

Vettore colonna

17

Page 18: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Matrici

• Oltre all’introduzione manuale degli elementi in un vettore/matrice, esistono alcuni comandi automatici: – Creazione di vettori riga equispaziati con passo unitario:

– Creazione di vettori riga equispaziati con passo arbitrario:

18

Page 19: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Matrici

• Creazione di vettori riga con il comando linspace(a, b, n):

– Il comando linspace(a, b, n) crea un vettore di n componenti tra a e b, linearmente distruibuite

• Creazione di vettori riga con il comando logspace(a, b, n):

– Il comando logspace(a, b, n) crea un vettore di n componenti tra a e b, logaritmicamentedistruibuite

19

Page 20: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Estrazione di elementi

20

Page 21: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Matrici notevoli

Matrice identità nxm

21

Page 22: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Operazioni su matrici

• Le operazioni elementari possono essere estese a vettori e matrici:

22

Page 23: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Operazioni su matrici

• E’ possibile effettuare operazioni elementari sui singoli elementi • di vettori o matrici: •

23

Page 24: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Funzioni di vettori

• E’ possibile creare vettori o matrici usando particolari forme funzionali

• Si supponga di voler costruire un vettore in cui elementi sono le y della seguente funzione per x compreso tra [0, 1]

• Passi necessari: – Creazione del vettore x:

24

Page 25: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Funzioni di vettori

– Creazione del vettore y:

– Da notare il “.”prima delle operazioni “^”e “/”

• Le funzioni vettorizzate sono importanti per: – Diagrammare funzioni – Risolvere problemi numerici – ecc.

25

Page 26: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Operazioni su matrici

26

Page 27: Elementi di Matlab - wpage.unina.itwpage.unina.it/p.maffettone/Didattica/Mads/Matlab_1.pdf · /27 MADS Matlab 1 2009 Che cosa è Matlab • Matlab è un linguaggio ad alto livello

/27Matlab 1MADS

2009

Simboli e funzioni

27