Matlab: Script e Funzioni

Documenti analoghi
Matlab: Funzioni. Informatica B AA 17/18 Luca Cassano 22 Novembre Informatica B, AA 17/18, Luca Cassano

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

A.A. 2018/2019. Fondamenti di Programmazione in MATLAB FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Matlab: Funzioni. Informatica B. Daniele Loiacono

Fondamenti di Informatica

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Matlab: funzioni. Daniele Loiacono, Vittorio Zaccaria

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOIGNEGNERIA. INFORMATICA B Ingegneria Elettrica. Script in Matlab

Fondamenti di Informatica

Script in Matlab. INFORMATICA B + C (sezione L-Z) Ingegneria Elettrica, Chimica e dei Materiali

Matlab I/O. Daniele Loiacono, Vittorio Zaccaria

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

Cosa sono gli Script (m-file) Script Semplici programmi. Fino ad ora, i comandi sono stati sempre digitati nella command window:

Introduzione a Matlab

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

L AMBIENTE CODE BLOCKS E L IO

Metodi numerici con elementi di Programmazione A.A

L AMBIENTE CODE BLOCKS E L IO

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Introduzione a Matlab. Renato Mainetti

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Script. Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 13 Agosto 2014

Laboratorio di Sperimentazioni di Fisica I MOD A. 14 ottobre 2009

Matlab 4. Operatori logici e Script. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

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

Introduzione all ambiente MATLAB. Richiami II. Analisi Numerica - A.A. 2007/08

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

INTRODUZIONE A MATLAB. Introduzione. Calcolatrice base. Calcolatrice base. Variabili predefinite o speciali. Variabili predefinite o speciali

Lo scopo. Il primo esperimento. Soluzione informale. Le variabili

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOIGNEGNERIA. INFORMATICA B Ingegneria Elettrica. Funzioni in Matlab

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)

Informatica Applicata al Suono Tutorial Matlab

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Octave. Luca Abeni. Informatica Luca Abeni 1 / 21

Lezione 22: Funzioni e File Giovedì 18 Novembre 2010

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

#include <stdio.h> main() { - 1 -

Introduzione a Matlab

>> A = [1 2 3; 4 5 6; 7 8 9]; >> A

1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata

MATLAB (II parte) Commenti. Input/Output (I/O) Istruzioni di Input/Output (I/O)

8 Introduzione MATLAB

Programmare. Condizioni logiche. Condizioni Logiche Costrutti Decisionali Costrutti di Ciclo

Introduzione alla programmazione A. Ferrari

Strategie di programmazione

CORSO DI LABORATORIO DI INFORMATICA

Variabili intere, funzioni e input/ Alessandra Giordani Lunedì 19 marzo

Le Funzioni in C. Fondamenti di Informatica Anno Accademico 2010/2011. Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Ingresso ed Uscita in C. Informatica 1 / 15

Fondamenti di Informatica

MATLAB Le funzioni. Funzioni. Funzioni. Funzioni

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

Funzioni. function [<risultati>] = nome_funzione ([ par.formali ])

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013

MATLAB Le funzioni. Funzioni. Funzioni. Funzioni

8 Introduzione MATLAB

Variabili e input/ Alessandra Giordani Lunedì 18 marzo

Operatori relazionali

Linguaggio C Struttura dei programmi

FORMULE: Operatori matematici

Le basi del linguaggio Java

Principi di Programmazione Prova del 10/6/2008 (ore 10.30)

Fondamenti di Informatica A. A / 1 9

Matlab: Variabili e Array. Informatica B

Variabili e Funzioni. Informatica 1 / 19

Appunti di informatica. Lezione 8 anno accademico Mario Verdicchio

Dinamica e Controllo dei Processi Energetici. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

x = input('inserisci x: '); fx = 1 for ii = 1 : x fx = fx * ii; end if (fx > 220) y = input('inserisci y: '); fy = 1 for ii = 1 : y fy = fy * ii; end

Introduzione al C. InformaticaB. Daniele Loiacono

Introduzione alla programmazione. Alice Pavarani

LABORATORIO di INFORMATICA

Il DOS diagramma di flusso. I comandi del DOS. I comandi: vista funzionale. Parametri. Opzioni. I comandi: sintassi

Funzioni e programmi. Lab. Programmazione - MATLAB 1

Informatica B. Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti. Prof. Marco Masseroli

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java

Esercizi 5 CICLI. Es.5(cicli)

Matlab - Simulink. Software per il calcolo e per la simulazione della dinamica dei sistemi

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

Formule e funzioni. Manuale d uso

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

Estrazione di dati da una matrice

Lezione 19: Introduzione a MATLAB Mercoledì 21 Ottobre 2009

Introduzione a MATLAB

Transcript:

Matlab: Script e Funzioni Informatica B

Script

Cos è uno script (m-file) q Uno script è un file di testo contenente una sequenza di comandi MATLAB non deve contenere caratteri di formattazione (solo testo puro) viene salvato con estensione.m q I comandi all interno di uno script sono eseguiti sequenzialmente, come se fossero scritti nella finestra dei comandi Per eseguire il file si digita il suo nome (senza.m) I risultati appaiono nella finestra dei comandi (se non usiamo il ; )

Come creare uno script q Può essere creato utilizzando un qualsiasi editor di testo Ricordarsi di salvare il file come solo testo e di dare l estensione.m Il file di script deve essere presente nella directory corrente o il cammino (path) che identifica la directory in cui si trova lo script deve essere salvato tra i path di Matlab q MATLAB include un editor dove creare o modificare script q Il nome del file (e dello script) segue le stesse regole dei nomi di variabile: deve cominciare con una lettera e può contenere cifre e il carattere underscore, fino a 31 caratteri è opportuno non usare un nome già in uso (il comando exist permette di verificare se un nome è già utilizzato)

A cosa serve uno script? q Uno script ci permette di progettare la soluzione (Matlab) ad un problema e memorizzarla in maniera permanente (nel file script) q Infatti, uno script può essere facilmente ri-eseguito essere facilmente modificato (sviluppo incrementale) essere spedito a qualcuno

Commenti q Quando l interprete incontra il carattere % ignora tutto ciò che lo segue su quella riga (che viene detto commento) q I commenti servono solo a chiarire il funzionamento del programma possono partire dall inizio di una riga o dalla metà i commenti posti all inizio di uno script vengono utilizzati dal comando help come descrizione del programma q Esempio % Questo script converte una velocità da km/h a m/s v = input( Inserire velocità in km/h ) v = v * (1000/3600) % converto v da km/h a m/s

Suggerimenti per strutturare uno script 1. Sezione dei commenti: Il nome del programma e le parole chiave, nella prima riga La data di creazione e i nomi degli autori nella seconda riga La definizione dei nomi delle variabili per ogni variabile di input e di output Il nome di ogni funzione creata dall utente che viene usata nel programma Il comando help visualizza tutta la sezione dei commenti all inizio dello script 2. Sezione di Input: inserimento dei dati in input e/o uso di funzioni di input 3. Sezione di calcolo 4. Sezione di output: uso si funzioni per visualizzare i risultati del programma

Variabili e script q Gli script non permettono di definire esplicitamente variabili di input o variabili di output q Le variabili utilizzate in uno script possono essere: variabili esistenti nella memoria di lavoro (workspace) variabili create nello script (tramite assegnamento oppure acquisizione da tastiera o file) q Le variabili create in uno script restano nella memoria di lavoro (workspace) anche al termine della sua esecuzione q Il valore assegnato alle variabili durante l esecuzione di uno script permane anche alla fine della sua esecuzione

Funzioni

A cosa servono le funzioni? x = input('inserisci velocità in km/h: ); y = x * (1000/3600); d = input ( inserire incremento di velocità: ); x2 = x + d; y2 = x2 * (1000/3600);

A cosa servono le funzioni? x = input('inserisci velocità in km/h: ); y = x * (1000/3600); d = input ( inserire incremento di velocità: ); x2 = x + d; y2 = x2 * (1000/3600);

A cosa servono le funzioni? q Riusabilità Scrivo una sola volta codice utilizzato spesso Modifiche e correzioni sono gestibili facilmente q Leggibilità Incapsulo porzioni di codice complesso Aumento il livello di astrazione dei miei programmi q Flessibilià Posso aggiungere funzionalità non presenti nelle funzioni di libreria

Le funzioni testata function y=converti(x) y = x*(1000/3600); corpo x è l argomento della funzione (serve a fornire l input) y è il valore di ritorno della funzione (serve a fornire l output) q La testata inizia con la parola chiave function e definisce: nome della funzione argomenti (input) valore di ritorno (output) q Il corpo definisce le istruzioni da eseguire quando la funzione viene chiamata Utilizza gli argomenti e assegna il valore di ritorno

Le funzioni (2) q Una funzione può avere più argomenti separati da virgola: function f(x,y) q Nel caso sia necessario ritornare più valori, possiamo usare un array: function [v1,v2, ] = f(x,y) q Esempio: function [minore, maggiore] = minmax(a,b,c) minore = min ([a,b,c]); maggiore = max([a,b,c]);

Invocazione q Una funzione può essere invocata in un programma attraverso il suo nome, seguito dagli argomenti fra parentesi rotonde q La funzione viene quindi eseguita e il suo valore di ritorno viene calcolato. q Esempio x = input('inserisci velocità in km/h: ); y = converti(x); d = input ( inserire incremento di velocità: ); y2 = converti(x + d);

I parametri q Definizioni: I parametri formali sono le variabili usate come argomenti e valore di ritorno nella definizione della funzione I parametri attuali sono i valori (o le variabili) usati come argomenti/valore di ritorno nella invocazione della funzione q Esempio: function y = converti(x) y = x*(1000/3600); >> v = converti(50); y ed x sono parametri formali v e 50 sono parametri attuali

I parametri (2) q Qualsiasi tipo di parametri è ammesso (scalari, vettori, matrici, strutture, ecc.) q I parametri attuali vengono associati a quelli formali in base alla posizione: il primo parametro attuale viene associato al primo formale, il secondo parametro attuale al secondo parametro formale, ecc. q Un invocazione di funzione deve contenere un numero di parametri attuali identico al numero di parametri formali q Esempio >> [x,y]=sumprod(4,5) function [s,p]=sumprod(a,b) s=a+b; p=a*b;

Esecuzione di una funzione q Quando una funzione viene eseguita, viene creato un workspace locale in cui vengono memorizzate tutte le variabili usate nella funzioni (inclusi i parametri formali) All interno delle funzioni non si può accedere al workspace principale (nessun conflitto di nomi) Quando la funzione viene eseguita, il workspace locale viene distrutto! q Quando viene invocata una funzione: Vengono calcolati i valori dei parametri attuali di ingresso Viene creato un workspace locale per la funzione I valori dei parametri attuali di ingresso vengono copiati nei parametri formali all interno del workspace locale Viene eseguita la funzione Vengono copiati i valori di ritorno dal workspace locale a quello principale (nei corrispondenti parametri attuali) Il workspace locale viene distrutto

Esecuzione di una funzione: esempio (1) >> x=3; (2) >> w=2; (3) >> r = funz(4); W principale dopo (2) function y = funz(x) y = 2*x; %(1 ) x = 0; %(2 ) z=4; %(3 ) x=w+1; %(4 ) x=3 w=2 W principale dopo (3) x=3 w=2 r= 8 W locale dopo (3) W locale dopo(1 ) x=4 y=8 W locale dopo(3 ) x=0 y=8 z=4 W locale (4 ) x=0 y=8 z=4 w=? à errore

File funzione q Come nel caso degli script le funzioni possono essere scritti in file di testo sorgenti Devono avere estensione.m Devono avere lo stesso nome della funzione Devono iniziare con la parola chiave function q Attenzione a non ridefinire funzioni esistenti exist( nomefunzione ) à 0 se la funzione non esiste