introduzione alla programmazione in matlab: parte 1 (m...

89
Fondamenti di Informatica Introduzione alla programmazione in MATLAB: Parte 1 (M-File ed Input/Output) Prof. Arcangelo Castiglione A.A. 2016/17

Upload: others

Post on 18-Jul-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

FondamentidiInformaticaIntroduzioneal laprogrammazioneinMATLAB:Parte1(M-FileedInput/Output)

Prof. ArcangeloCastigl ioneA.A. 2016/17

Page 2: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

IntroduzioneallaprogrammazioneinMATLAB:Parte1

OUTLINE

•M-File•M-FileScript•M-FileFunction

• Input/Output

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 3: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-File– 1/2

• Finora abbiamo inserito comandi, istruzioni e funzioniMATLAB direttamente mediante la Command Window• Tuttavia, ciò può causare disagio, specialmente quando comandi,istruzioni e funzioni devono essere rieseguiti più volte• Magari in più sessioni di lavoro MATLAB distinte• Con leggere modifiche• Etc

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 4: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-File– 1/2

• Finora abbiamo inserito comandi, istruzioni e funzioniMATLAB direttamente mediante la Command Window• Tuttavia, ciò può causare disagio, specialmente quando comandi,istruzioni e funzioni devono essere rieseguiti più volte• Magari in più sessioni di lavoro MATLAB distinte• Con leggere modifiche• Etc•MATLAB permette di risolvere questi problemiattraverso l’utilizzo degliM-File

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 5: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-File– 2/2

•MATLAB consente di memorizzare una sequenza diistruzioni in un file, dettoM-File• In particolare, unM-File può essere di due tipi• M-File Script: contiene una sequenza di comandi o istruzioniMATLAB, nella stessa forma in cui vengono scritti usando CommandWindow• M-File Function: contiene nuove funzioni MATLAB definitedall’utente. In generale, tali funzioni accettano dati in input erestituiscono dati di output, come risultato della loro elaborazione

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 6: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileScript– 1/9• In MATLAB è possibile rieseguire comandi, istruzioni e funzionimediante i seguenti passi• Creare un file (che conterrà la lista di comandi, istruzioni e funzioni)• Salvare il file• Eseguire il file

• Un file contenente una lista di comandi/istruzioni/funzioni MATLABviene detto• M-File Script

• OgniM-file Script ha l’estensione .m

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 7: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileScript– 2/9• Piùprecisamente,unM-file Script è• UnfileesternocontenentesequenzediistruzioniMATLAB• Digitandoilnomedelfile,comandi/istruzioni/funzionipreseininputdaMATLABsonoottenutedirettamentedatalefile

• Utileperl'automazionediblocchidicomandi/istruzioni/funzioniMATLAB• Comeadesempiocalcolicheènecessarioeseguirepiùvolte(manualmente)dallaCommand Window

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 8: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileScript– 3/9• Esempio• Creare uno script (di nome sommamat.m) che• Effettua la somma di due matrici A e B• Salva il risultato nella matrice C ed infine lo stampa

• A e B sono definite come segue

• 𝐴 = 2 34 5 , 𝐵 = 6 7

8 9

• SOLUZIONEMATLAB per sommare A e B• Tale soluzione andrà inserita nel file sommamat.m

A=[2 3;4 5];B=[6 7; 8 9];C=A+B

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 9: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileScript– 4/9• Creare uno script con MATLAB

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 10: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileScript– 4/9(VersionipiùrecentidiMATLAB)• Creare uno script con MATLAB

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 11: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileScript– 4/9(VersionipiùrecentidiMATLAB)• Creare uno script con MATLAB

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 12: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileScript– 4/9(UtilizzandolaCommandWindow)• Creare uno script con MATLAB utilizzando il comando edit

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 13: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileScript– 5/9• Editor diM-File Script• Inserire le istruzioni MATLAB mediante l’Editor diM-file Script

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 14: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileScript– 6/9• Salvare l’M-File Script (il .m viene automaticamente aggiunto)

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 15: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileScript– 6/9(VersionipiùrecentidiMATLAB)• Salvare l’M-File Script (il .m viene automaticamente aggiunto)

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 16: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileScript– 6/9(VersionipiùrecentidiMATLAB)• Salvare l’M-File Script (il .m viene automaticamente aggiunto)

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 17: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileScript– 6/9• Salvare l’M-File Script (il .m viene automaticamente aggiunto)

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 18: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileScript– 7/9• Eseguire l’M-File Scriptmediante la Command Window• L’M-File Script deve essere memorizzato nella Current Directory• Per eseguirlo è sufficiente digitare nella Command Window il nome del filescript (senza estensione .m)

• Esempio• Supponiamo di aver memorizzato il file script dell’esempio precedentenella Current Directory, con il nome di sommamat.m

>> sommamat

C =

8 1012 14

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 19: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

• GliM-FileScript possonooperaresuvariabiliesistentinelWorkspace,oppurepossonocrearnedinuove• TuttelevariabilichechevengonocreatedataliscriptrimangononelWorkspace epossonoessereusatepereffettuareulterioricalcoli

Scriptpercalcolarelamediadi3numeri

Workspace

M-FileScript– 8/9

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 20: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Scriptpercalcolarelamediadi3numeri

VariabilipresentinelWorkspace primadell’esecuzionedelloscript

Command Window

M-FileScript– 8/9• GliM-FileScript possonooperaresuvariabiliesistentinelWorkspace,oppurepossonocrearnedinuove• TuttelevariabilichechevengonocreatedataliscriptrimangononelWorkspace epossonoessereusatepereffettuareulterioricalcoli

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Definiscotrevariabilia, b, c

Page 21: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

• GliM-FileScript possonooperaresuvariabiliesistentinelWorkspace,oppurepossonocrearnedinuove• TuttelevariabilichechevengonocreatedataliscriptrimangononelWorkspace epossonoessereusatepereffettuareulterioricalcoli

Scriptpercalcolarelamediadi3numeri

Command Window

VariabileinseritanelWorkspace dopol’esecuzionedello

script

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Eseguoloscriptmedia

Page 22: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

• GliM-FileScript possonooperaresuvariabiliesistentinelWorkspace,oppurepossonocrearnedinuove• TuttelevariabilichechevengonocreatedataliscriptrimangononelWorkspace epossonoessereusatepereffettuareulterioricalcoli

M-FileScript– 8/9

Scriptpercalcolarelamediadi3numeri

Workspace

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 23: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

• GliM-FileScript possonooperaresuvariabiliesistentinelWorkspace,oppurepossonocrearnedinuove• TuttelevariabilichechevengonocreatedataliscriptrimangononelWorkspace epossonoessereusatepereffettuareulterioricalcoli

M-FileScript– 8/9

Scriptpercalcolarelamediadi3numeri

IntroduzioneallaprogrammazioneinMATLAB:Parte1

VariabiliinseritenelWorkspace dopol’esecuzionedello

scriptEseguoloscriptmedia

Page 24: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileScript– 9/9•M-File Script• VANTAGGI:• È possibile modificare (se necessario) comandi/istruzioni/funzioninel file una sola volta, ed eseguire tale file (script) più volte

• SVANTAGGI:• Tutte le variabili create all’interno dello script sono aggiunte alWorkspace, e questo può portare a problemi indesiderati• Ad Esempio• Alcune variabili già esistenti nel Workspace vengono sovrascritte• Lo stato di alcune variabili già esistenti nel Workspace viene modificato• Etc

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 25: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

CommentiinMATLAB– 1/3• GliM-FileScript (maanchegliM-FileFunction)possonocontenerequalsiasiseriediistruzioni/comandi/funzioniMATLAB,maanchecommenti• Qualsiasitestochesegueunsegnodipercentuale(%)suunadatalineaèdettotestodicommentoedèmostratoinverde• Icommenti• Possonoapparire• SulineedistinterispettoalleistruzioniMATLAB• AllafinediunaistruzioneMATLAB• NonvengonoprocessatidaMATLAB• L’aggiuntadicommentièessenzialeperlacomprensionediprogrammicostituitidaungrannumerodiistruzioni• Amaggiorragioneseilprogrammadeveesserecompresodapersonediversedalsuoautore

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 26: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •
Page 27: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Commentosulineadistinta

CommentiinMATLAB– 2/3

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Commentosulineadistinta

Page 28: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Commentoafineistruzione

CommentiinMATLAB– 3/3

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 29: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Funzioni– 1/4• Una funzione è un segmento (blocco) autonomo diprogramma che esegue un compito specifico

• In termini più formali, una funzione (detta anche subroutine,metodo, procedura o sottoprogramma) è una porzione dicodice all'interno di un programma più ampio, che svolge uncompito specifico e può essere relativamente indipendente dalresto del codice

• Le funzioni rappresentano le basi per costruire programmi piùcomplessi

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 30: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Funzioni– 2/4

• Una funzione è un segmento (blocco) autonomo diprogramma che esegue un compito specifico

Output Input

Function

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 31: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Funzioni– 2/4

• Una funzione è un segmento (blocco) autonomo diprogramma che esegue un compito specifico

• Una funzione può• Accettare uno o più (ma anche zero) argomenti in input• Restituire uno o più (ma anche zero) argomenti in output

Output Input

Function

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 32: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Funzioni– 3/4

• Una funzione può essere vista come una sorta di “blackbox”• Il suo codice sorgente ed il suo Workspace (stato) risultanonascosti al chiamante• Una funzione comunica con il “mondo esterno” soltantousando le proprie variabili di input e output

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Output Input

Function

Page 33: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Funzioni– 4/4• Perché usare le funzioni?

• Riusabilità• Una funzione può essere usata più volte, senza necessità diriscrivere ogni volta il codice sorgente (istruzioni) che essacontiene

• Leggibilità del codice• Un programma che risolve un problema complesso, può esseresuddiviso più sotto-programmi (funzioni), ognuno dei quali risolveun sotto-problema (divide-et-impera)

• Gestibilità del codice

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 34: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 1/11

•MATLAB mette già a disposizione diverse funzioni, dettefunzioni built-in• Alcune delle quali sono state utilizzate nelle lezioni precedenti• Ad esempio mean, sum, max, etc

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 35: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

80 90 95 100 98 88 92x =

Input

Funzioni

y = mean(x) y = sum(x)

Output

91.85 643 100

y = max(x)

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 36: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 1/11

•MATLAB mette già a disposizione diverse funzioni, dettefunzioni built-in• Alcune delle quali sono state utilizzate nelle lezioni precedenti• Ad esempio max, sum, sqrt, etc

• Inoltre, MATLAB permette all’utente di creare propriefunzioni, dette funzioni user-defined

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 37: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 2/11• Vediamo come creare in MATLAB una funzione user-defined

• Sintassi per creare una funzione definita dall’utente

function [variabili di output] = nome_funzione(variabili di input)<corpo_funzione>

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 38: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 2/11

• Le variabili di output sono quelle i cui valori vengonocalcolati dalla funzione, utilizzando i valori delle variabili diinput• Le variabili di output sono racchiuse tra parentesi quadre (chesono facoltative quando c’è un solo output)

• Le variabili di input devono essere racchiuse tra parentesitonde• La parola function nella riga di definizione della funzione deveessere scritta in lettere minuscole

function [variabili di output] = nome_funzione(variabili di input)<corpo_funzione>

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 39: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 2/11• Vediamo come creare in MATLAB una funzione user-defined

• Sintassi per creare una funzione definita dall’utente

function [out1,out2,...,outN] = nome_funzione(in1,in2,...,inM)<corpo_funzione>

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 40: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 2/11• Vediamo come creare in MATLAB una funzione user-defined

• Sintassi per creare una funzione definita dall’utente

function [out1,out2,...,outN] = nome_funzione(in1,in2,...,inM)<corpo_funzione>

end

Output

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 41: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 2/11• Vediamo come creare in MATLAB una funzione user-defined

• Sintassi per creare una funzione definita dall’utente

function [out1,out2,...,outN] = nome_funzione(in1,in2,...,inM)<corpo_funzione>

end

Input

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 42: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 2/11• Vediamo come creare in MATLAB una funzione user-defined

• Sintassi per creare una funzione definita dall’utente

function [out1,out2,...,outN] = nome_funzione(in1,in2,...,inM)<corpo_funzione>

end

OutputInput

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 43: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

• Vediamo come creare in MATLAB una funzione user defined

• Sintassi per creare una funzione definita dall’utente

M-FileFunction (4)

function [out1,out2,...,outN] = nome_funzione(in1,in2,...,inM)<corpo_funzione>

end

OutputInput

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 44: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 2/11• Vediamo come creare in MATLAB una funzione user-defined

• Sintassi per creare una funzione definita dall’utente

function [out1,out2,...,outN] = nome_funzione(in1,in2,...,inM)<corpo_funzione>

end

Nomedellafunzione

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 45: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction (4)• Vediamo come creare una funzione user defined

• Sintassi per creare una funzione definita dall’utente

function [out1,out2,...,outN] = nome_funzione(in1,in2,...,inM)<corpo_funzione>

end

Nomedellafunzione

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 46: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction- 2/11• Vediamo come creare in MATLAB una funzione user-defined

• Sintassi per creare una funzione definita dall’utente

function [out1,out2,...,outN] = nome_funzione(in1,in2,...,inM)<corpo_funzione>

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 47: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction (4)• Vediamo come creare una funzione user defined

• Sintassi per creare una funzione definita dall’utente

function [out1,out2,...,outN] = nome_funzione(in1,in2,...,inM)<corpo_funzione>

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

corpo_funzione

Page 48: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 3/11• Esempio 1 (Area Triangolo Equilatero)

function area = area_triangolo_equilatero(lato)

area = sqrt(3)/4 * lato^2;

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Definizione(odichiarazione)dellafunzione

Page 49: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 3/11• Esempio 1 (Area Triangolo Equilatero)

function area = area_triangolo_equilatero(lato)

area = sqrt(3)/4 * lato^2;

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

1variabilediinput

Definizione(odichiarazione)dellafunzione

Page 50: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 3/11• Esempio 1 (Area Triangolo Equilatero)

function area = area_triangolo_equilatero(lato)

area = sqrt(3)/4 * lato^2;

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

1variabiledioutput

Definizione(odichiarazione)dellafunzione

Page 51: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 3/11• Esempio 1 (Area Triangolo Equilatero)

function area = area_triangolo_equilatero(lato)

area = sqrt(3)/4 * lato^2;

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

1variabiledioutput

N.B. Inomidellevariabilidioutputpresentinelladefinizionedellafunzionedevonoessereidenticiaquellidellevariabiliincuisonomemorizzatiivalori(calcolati)chelafunzionedeverestituirecomeoutput

Definizione(odichiarazione)dellafunzione

Page 52: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 3/11• Esempio 1 (Area Triangolo Equilatero – Con Commenti)function area = area_triangolo_equilatero(lato)

%La funzione prende in input la lunghezza di un lato e %restituisce in output l’area del triangolo

%L'area del triangolo equilatero può essere calcolata %dividendo per 4 la radice quadrata di 3; il risultato %ottenuto da tale divisione deve essere moltiplicato per %la dimensione del lato, elevata al quadrato

area = sqrt(3)/4 * lato^2;

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 53: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 4/11• Esempio 2 (Area Sfera)function area = area_sfera(raggio)

area = 4 * pi * raggio^2;

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Definizione(odichiarazione)dellafunzione

Page 54: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 5/11• Esempio 3 (Area e Volume Sfera)function [area, volume] = area_volume_sfera(raggio)

area = area_sfera(raggio);volume = 4/3 * pi * raggio^3;

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Definizione(odichiarazione)dellafunzione

Page 55: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 5/11• Esempio 3 (Area e Volume Sfera)function [area, volume] = area_volume_sfera(raggio)

area = area_sfera(raggio);volume = 4/3 * pi * raggio^3;

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

2 variabilidioutput

Definizione(odichiarazione)dellafunzione

Page 56: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 5/11• Esempio 3 (Area e Volume Sfera)function [area, volume] = area_volume_sfera(raggio)

area = area_sfera(raggio);volume = 4/3 * pi * raggio^3;

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

2 variabilidioutput

N.B. Inomidellevariabilidioutputpresentinelladefinizionedellafunzionedevonoessereidenticiaquellidellevariabiliincuisonomemorizzatiivalori(calcolati)chelafunzionedeverestituirecomeoutput

Definizione(odichiarazione)dellafunzione

Page 57: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 5/11• Esempio 3 (Area e Volume Sfera)

• Osservazione: all’interno di una funzione è possibile invocare una o piùfunzioni user-defined e/o funzioni built-in di MATLAB

• NOTA: Le funzioni user-defined, per poter essere invocate, devonoessere state precedentemente memorizzate (salvate) nel relativo M-File Function• Vediamo come…

function [area, volume] = area_volume_sfera(raggio)

area = area_sfera(raggio); à invocazioneaun’altrafunzionevolume = 4/3 * pi * raggio^3;

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 58: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 6/11• Le funzioni user-defined, per poter essere invocate, devono esserestate precedentemente memorizzate (salvate) nel relativo M-FileFunction

• Salvare una funzione user-defined in unM-File Function• Il nome della funzione (nome_funzione) deve essere uguale al nome del file incui sarà salvata tale funzione

• Ad es., se il nome della funzione è media, tale funzione deve essere salvata nel filemedia.m (N.B. MATLAB suggerisce già il nome corretto da dare alla funzione)

function [out1,out2,...,outN] = nome_funzione(in1,in2,...,inM)<corpo_funzione>

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 59: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

• Le funzioni user-defined, per poter essere invocate, devono esserestate precedentemente memorizzate (salvate) nel relativo M-FileFunction

• Salvare una funzione user-defined in unM-File Function• Il nome della funzione (nome_funzione) deve essere uguale al nome del file incui sarà salvata tale funzione

• Ad es., se il nome della funzione è media, tale funzione deve essere salvata nel filemedia.m (N.B. MATLAB suggerisce già il nome corretto da dare alla funzione)

function [out1,out2,...,outN] = nome_funzione(in1,in2,...,inM)<corpo_funzione>

end

M-FileFunction (4)

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 60: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

function [out1,out2,...,outN] = nome_funzione(in1,in2,...,inM)<corpo_funzione>

end

• Le funzioni user-defined, per poter essere invocate, devono esserestate precedentemente memorizzate (salvate) nel relativo M-FileFunction

• Salvare una funzione user-defined in unM-File Function• Il nome della funzione (nome_funzione) deve essere uguale al nome del file incui sarà salvata tale funzione

• Ad es., se il nome della funzione è media, tale funzione deve essere salvata nel filemedia.m (N.B. MATLAB suggerisce già il nome corretto da dare alla funzione)

M-FileFunction (4)

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 61: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

function [out1,out2,...,outN] = nome_funzione(in1,in2,...,inM)<corpo_funzione>

end

• Le funzioni user-defined, per poter essere invocate, devono esserestate precedentemente memorizzate (salvate) nel relativo M-FileFunction

• Salvare una funzione user-defined in unM-File Function• Il nome della funzione (nome_funzione) deve essere uguale al nome del file incui sarà salvata tale funzione

• Ad es., se il nome della funzione è media, tale funzione deve essere salvata nel filemedia.m (N.B. MATLAB suggerisce già il nome corretto da dare alla funzione)

M-FileFunction – 6/

IntroduzioneallaprogrammazioneinMATLAB:Parte1

NuoveversionidiMATLAB

Page 62: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 7/11

• Un M-file Function ha estensione .m ed il suo contenuto deveiniziare con la parola chiave function• Seguito da eventuali parametri di input e di output

• Ogni M-file Function ha un proprio workspace, separato dalWorkspace mostrato in MATLAB• Tutte le variabili all’interno dell’M-file Function vengono dette “locali” adesso• Esistono soltanto all’interno della funzione stessa• Non vengono viste dall’ambiente MATLAB o da altre eventuali M-file Functionchiamanti

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 63: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 8/11• Una volta memorizzata la funzione user-defined nelrelativo M-File Function (nella Current Directory), talefunzione può essere invocata dalla Command Window diMATLAB

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 64: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 8/11• Dopocheèstatacreata(dichiarata),unafunzionepuòessereutilizzata(invocata),fornendogliininputgliopportuniparametri

function area = area_triangolo_equilatero(lato)

area = sqrt(3)/4 * lato^2;

end

>> area_triangolo_equilatero(3)

ans =

3.8971

Dichiarazione

Invocazione

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 65: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 8/11• Dopocheèstatacreata(dichiarata),unafunzionepuòessereutilizzata(invocata),fornendogliininputgliopportuniparametri

function area = area_triangolo_equilatero(lato)

area = sqrt(3)/4 * lato^2;

end

>> area_triangolo_equilatero(3)

ans =

3.8971

Dichiarazione

Invocazione

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 66: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 8/11• N.B.Èimportantenotareladifferenzatradefinizione(Dichiarazione)dellafunzioneeduso(Invocazione)dellafunzionestessa

function area = area_triangolo_equilatero(lato)

area = sqrt(3)/4 * lato^2;

end

>> area_triangolo_equilatero(3)

ans =

3.8971

Dichiarazione

Invocazione

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 67: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 8/11• Ivalorirestituitiinoutputdaunafunzionepossonoessereassegnatiavariabili• ChesarannovisibilinelWorkspace diMATLAB

>> somma = sumTwoNums(3,4)

somma =

7

function mySum = sumTwoNums(a,b)

mySum = a+b;

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 68: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 8/11• Ivalorirestituitiinoutputdaunafunzionepossonoessereassegnatiavariabili• ChesarannovisibilinelWorkspace diMATLAB

>> [area, volume] = area_volume_sfera(6)

area = 452.3893

volume = 904.7787

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 69: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 9/11• Parametri formali• I parametri formali sono quelli indicati in fase di dichiarazione dellafunzione• Esempio

• raggio è un parametro formale di input della funzionearea_volume_sfera

function [area, volume] = area_volume_sfera(raggio) ...

end

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 70: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 10/11• Parametri attuali• I parametri attuali sono quelli indicati in fase di invocazione dellafunzione

• Esempio

• In questo caso, raggio è un parametro attuale di input della funzioneinvocata area_sfera

.

. area = area_sfera(raggio);...

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 71: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

M-FileFunction – 11/11• I parametri possono essere di qualsiasi tipo• Array, matrici, scalari, etc..

• I parametri attuali vengono associati a quelli formalitenendo conto della posizione• Il primo parametro attuale viene associato al primo parametroformale, il secondo attuale al secondo formale, etc..

• È necessario che l’invocazione a una funzione avvengacon un numero di parametri attuali uguale al numero deiparametri formali

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 72: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

>> area_triangolo = areaTriangolo(5, 3)

area_triangolo =

7.5000

M-FileFunction – 11/11function area_triangolo = areaTriangolo(base, altezza)

area_triangolo = (base * altezza) / 2;

end

2parametriformali:corrispondentirispettivamenteallabaseedall’altezza

2parametriattuali:corrispondentirispettivamenteallabaseedall’altezza

N.B.Ilprimoparametroattualedevecorrisponderealprimoparametroformale,ilsecondoparametroattualedevecorrisponderealsecondoparametroformaleecosìvia…

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Dichiarazio

neInvocazio

ne

Page 73: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Input/Output– 1/6• MATLAB fornisce vari comandi che permettono di ottenere l’inputdegli utenti e formattare i dati di output (i risultati ottenutieseguendo i comandi di MATLAB)

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 74: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Input/Output– 2/6• Con il comando input è possibile ottenere un input da partedell’utente tramite il prompt del Command Window

• Esempio

>> x = input('Inserisci x: ')

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 75: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Input/Output– 2/6• Il comando input visualizza un testo sullo schermo, aspetta che l’utentedigiti qualcosa e poi memorizza l’input nella variabile specificata

• Esempio

>> x = input('Inserisci x: ')

IntroduzioneallaprogrammazioneinMATLAB:Parte1

StringamostrataavideoVariabileincuiverràmemorizzatol’inputdigitatodall’utente

Page 76: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Input/Output– 2/6• Con il comando input è possibile ottenere un input da partedell’utente tramite il prompt del Command Window

• Esempio

>> x = input('Inserisci x: ')Inserisci x:

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 77: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Input/Output– 2/6• Con il comando input è possibile ottenere un input da partedell’utente tramite il prompt del Command Window

• Esempio

>> x = input('Inserisci x: ')Inserisci x:

Attendel’inputdell’utente

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 78: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Input/Output– 2/6• Con il comando input è possibile ottenere un input da partedell’utente tramite il prompt del Command Window

• Esempio

>> x = input('Inserisci x: ')Inserisci x: 45

x =

45

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 79: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Input/Output– 2/6• Con il comando input è possibile ottenere un input da partedell’utente tramite il prompt del Command Window

• Esempio

>> x = input('Inserisci x: ')Inserisci x: 45

x =

45

Memorizzanellavariabilex ilvalorepresoininput,ovvero,45

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 80: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Input/Output– 3/6• Esempio 2

>> a = input('a: ');a: 125>> b = input('b: ');b: 270>> c = input('c: ');c: 391>> average = (a+b+c)/3

average =

262

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 81: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Input/Output– 3/6

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Comealsolito,maggioriinformazionisulcomandopossonoessereottenuteutilizzandoilcomandohelp

Page 82: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Input/Output– 4/6• Generalmente vengono utilizzati due modi per mostrare l’output inMATLAB• disp• fprintf

• Il comando disp ha il vantaggio di essere molto semplice dautilizzare, ma fornisce un controllo limitato su ciò che può esseremostrato in output

• Il comando fprintf è estremamente completo nella gestionedell’output, ma non è di facile utilizzo• Possibilità di specificare numerose opzioni riguardanti come verràvisualizzato l’output (maggiori informazioni digitando il comando helpfprintf)

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 83: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Input/Output– 4/6• Esempi di utilizzo del comando disp

>> disp('stringa')stringa

>> disp(['stringa1','stringa2','stringa3'])stringa1stringa2stringa3

>> disp(['stringa ', num2str(10)])stringa 10

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 84: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Input/Output– 4/6• Esempi di utilizzo del comando disp

>> disp('stringa')stringa

>> disp(['stringa1','stringa2','stringa3'])stringa1stringa2stringa3

>> disp(['stringa ', num2str(10)])stringa 10

IMPORTANTE:num2str trasformaunnumeroinunastringa,inmodochepossaesserestampatadadisp

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 85: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Input/Output– 5/6• Esempio 1 (Utilizzo comando disp)

>> a = 46; b = 35; c = 100;>> disp('Stamperò il valore di a e la somma b + c')Stamperò il valore di a e la somma b + c>> disp(['Il valore della variabile a è :', num2str(a)])Il valore della variabile a è :46>> disp(['La somma b + c è:', num2str(b+c)])La somma b + c è:135

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 86: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Input/Output– 6/6• ÈpossibiledecidereilformatodivisualizzazionedeirisultatiprodottidaMATLAB,medianteilcomandoformat• Ilcomandoformat determinal’aspettodeinumerisulloschermo

•MATLAButilizzamoltecifresignificativeneisuoicalcoli,mararamenteservonotutte

• IlformatostandarddivisualizzazionediMATLAButilizzaquattrocifredecimali

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 87: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

• È possibile decidere il formato di visualizzazione del risultato tramiteil comando format• format short: 4 cifre decimali (formato standard o di default); Ad es.,13.6745

• format long : 16 cifre. Ad es., 17.27484029463547• format short e: 5 cifre (4 decimali) più l’esponente. Ad es.,6.3792e+03

• format long e: 16 cifre (15 decimali) più l’esponente. Ad es.,6.379243784781294e-04

• format bank: 2 cifre decimali. Ad es., 126.73• format +: Positivo, negativo o zero. Ad es., +• format rat: Approssimazione razionale. Ad es., 43/7• format compact: Elimina le righe vuote• format loose: Annulla l’effetto di format compact

Input/Output– 6/6

IntroduzioneallaprogrammazioneinMATLAB:Parte1

Page 88: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

È possibile decidere il formato di visualizzazione delrisultato tramite il comando formatformat short: 4 cifre decimali (formato standard o di default);Ad es., 13.6745format long : 16 cifre. Ad es., 17.27484029463547• format short e: 5 cifre (4 decimali) più l’esponente. Ad es.,6.3792e+03• format long e: 16 cifre (15 decimali) più l’esponente. Ad es.,6.379243784781294e-04

format bank: 2 cifre decimali. Ad es., 126.73format +: Positivo, negativo o zero. Ad es., +format rat: Approssimazione razionale. Ad es., 43/7format compact: Elimina le righe vuoteformat loose: Annulla l’effetto di format compact

Input/Output– 6/6

IntroduzioneallaprogrammazioneinMATLAB:Parte1

N.B.Inquestocontestoe nonrappresentailnumeroe di Nepero,cheèallabasedeilogaritminaturali,mal’inizialedellaparola“esponente”

Page 89: Introduzione alla programmazione in MATLAB: Parte 1 (M ...arccas/materiale/lezioni/Lezione_15.pdf · Introduzione alla programmazione in MATLAB: Parte 1. M-File Function –1/11 •

Riferimenti• Capitolo1• Paragrafo1(Comandidiformattazione)• Paragrafi4[FilescriptedEditor/Debugger]e5[LaguidadiMATLAB]

• Capitolo3• Paragrafi1[Funzionimatematichedibase]e2[Funzionidefinitedall’utente,finoaVariantinellachiamatadiunafunzione (incluso)]

IntroduzioneallaprogrammazioneinMATLAB:Parte1