elementi di matlab - wpage.unina.itwpage.unina.it/p.maffettone/didattica/mads/matlab_1.pdf · /27...
TRANSCRIPT
![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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/2.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/3.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/4.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/5.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/6.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/7.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/8.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/9.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/10.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/11.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/12.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/13.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/14.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/15.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/16.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/17.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/18.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/19.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/20.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/21.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/22.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/23.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/24.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/25.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/26.jpg)
/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](https://reader031.vdocuments.mx/reader031/viewer/2022013006/5b96957309d3f27a7a8bf4f8/html5/thumbnails/27.jpg)
/27Matlab 1MADS
2009
Simboli e funzioni
27