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

Documenti analoghi
CORSO DI LABORATORIO DI INFORMATICA

Introduzione a Matlab

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

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

Introduzione al MATLAB c Parte 3 Script e function

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

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

Informatica Applicata al Suono Tutorial Matlab

Laboratorio di Matlab

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

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

Matlab. Istruzioni condizionali, cicli for e cicli while.

Corso di Laboratorio di Sistemi Operativi

Metodi Numerici con Elementi di Programmazione A.A

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

Le basi del linguaggio Java

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

Fondamenti di Informatica

Programmazione Matlab

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

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

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

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

8 Introduzione MATLAB

CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2015/2016

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Costrutti condizionali e iterativi

Breve introduzione al linguaggio R

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

STATISTICA LAB. Analisi dei dati con R - Ex 2. Marta Nai Ruscone. LIUC - Università Carlo Cattaneo, Castellanza STATISTICA LAB

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015

Controllo di flusso negli script: if-then-else

Strutture di Controllo

1 (7) 2 (6) 3 (6) 4 (7) 5 (6)

Matlab : le basi. Vediamo ora un esercizio di calcolo: Il volume di una sfera è dato da V=4*π*r 3 /3 dove r è il raggio.

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione a Matlab

Fondamenti di Informatica

Prove d esame Esercizi con Matlab

Introduzione a Matlab. Renato Mainetti

A. Introduzione a Matlab

Lezione 6 programmazione in Java

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

Laboratorio di Informatica

Fondamenti di Informatica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Completiamo le istruzioni condizionali: Istruzione switch Può essere usata per realizzare una selezione a più vie. Sintassi:

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Fondamenti di Informatica

INFORMATICA. Strutture iterative

CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS

14Ex-Cap11.qxd :20 Pagina Le macro

Esercitazioni di Fondamenti Informatica - Modulo A 1

MATLAB Elementi di grafica Costrutti di programmazione

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

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

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

A.S Classe III H Informatica. Programma didattico finale e indicazioni per il recupero estivo relativi all'insegnamento di Informatica

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :

Esercitazione 1: Introduzione a MATLAB

If Statement. Il costrutto condizionale if ha la seguente sintassi:

Programmazione web lato client con JavaScript. Marco Camurri 1

Algoritmi e soluzione di problemi

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array" Lab06 1

Esercitazione 4. Comandi iterativi for, while, do-while

Introduzione al MATLAB c Parte 2

Manipolazione di array

3 Costrutti while, for e switch

RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA

MATLAB - Programmazione - 2. Antonino Polimeno

Laboratorio Progettazione Web Il linguaggio PHP Lezione 6. Andrea Marchetti IIT-CNR 2011/2012

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Introduzione alla programmazione

Metodi numerici con elementi di Programmazione A.A

Individuazione di sottoproblemi

Mini-Corso di Informatica

PROGRAMMAZIONE STRUTTURATA

Fondamenti di Informatica T-1 Modulo 2

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin

L utility Unix awk [Aho-Weinberger-Kernighan]

Fondamenti di Informatica

Introduzione a Matlab Costruzione di Macchine 2 Prof. Sergio Baragetti

INTRODUZIONE ALLA PROGRAMMAZIONE

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Fondamenti di Informatica T-1 Modulo 2

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Laboratorio 1. 2) All interno della directory c:\temp\cognome\codici creare il file sorgente hello.c contenente il seguente codice:

Prima di iniziare: Inviare una mail all indirizzo : Scaricare i files per la lezione di oggi dal sito:

Esercizi d esame. Elena Tundo

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Lezione 5: Controllo del flusso e costrutti avanzati

C espressioni condizionali

Si può scrivere un programma anche utilizzando un editor di testo (Blocco Note, WordPad, ) ricordandosi comunque di salvarlo con l estensione.py.

Valori Alfanumerici. Informatica di Base -- R.Gaeta 1

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Esercitazioni di Elementi di Informatica

Transcript:

Introduzione all ambiente MATLAB Richiami II

Programmazione MATLAB MATLAB non è un vero e proprio linguaggio di programmazione, ma permette comunque di realizzare programmi utilizzando le classiche strutture di programmazione come i cicli, i flussi di controllo e la gestione input/output. Due tipi di programmi, noti come m-file, (es. sort.m) script function

Programmazione MATLAB Per creare un m-file si seleziona New->m-file dal menu File. Script e funzioni vengono quindi inseriti mediante l'editor di MATLAB. Si salva poi il file con il suffisso.m N.B. Assicurarsi di aver selezionato dalla current directory il percorso (path) relativo alla directory (cartella) di lavoro contenente l m-file.

Uno SCRIPT è una lista di comandi MATLAB che può eventualmente richiamare funzioni MATLAB built-in o create utilizzando altri m-file. - Non richiede input - Non fornisce output espliciti - Tutte le variabili usate (variabili globali) sono disponibili nel workspace - Simile ad un programma principale - Il file nome.m deve essere disponibile nel proprio path corrente Script

N.B. Per eseguire i comandi contenuti nello script (cioè richiedere a MATLAB che il file venga interpretato) si richiama semplicemente il suo nome dalla Command Window (senza estensione.m).

Esempio 1: scrivere uno script che calcola la media fra 4 variabili Scrivere nell editor lo script a=10; b=20; c=30; d=40; media=(a+b+c+d)/4; Salvare l m-file come prova.m Eseguire lo script digitando nella Command Window prova

Esempio 2: scrivere uno script che calcola la somma dei primi n numeri dispari Scrivere nell editor lo script %%%%%%%%%%% prova1.m%%%%%%%%%%%%% n=input( inserisci n ); %costruisco il vettore dei primi n numeri dispari v=[1:2:2*n-1]; S=sum(v); disp( la somma e ) S Salvare l m-file come prova1.m Eseguire lo script digitando nella Command Window prova1

Un m-file che contiene una funzione MATLAB si identifica nella prima riga con function y = functionname (argomenti input) y variabile in output Function Quando invece le variabili in output sono più di una, la forma precedente si modifica nel modo seguente: function [y,z] = functionname (argomenti input)

Il nome dell'm-file deve essere il nome dato alla funzione, eccetto chiaramente l'estensione.m Le variabili al suo interno sono viste solo localmente dalla funzione stessa e non dall'eventuale m-file chiamante o dall'ambiente MATLAB che la richiama. Sono variabili locali; dopo l esecuzione non rimangono memorizzate nello spazio di lavoro.

Esempio: Definire una funzione che calcola la media e la deviazione standard di un vettore x. Variabili output Nome function Parametri input function [mean,stdev] = stat(x) n = length(x); mean = sum(x) / n; stdev = sqrt(sum((x - mean).^2)/n); Le variabili nel corpo della funzione sono tutte variabili locali. [m,s]=stat (1:5) Richiamo della function da command window o da uno script o da altra function

Funzioni secondarie Uno stesso file.m può contenere più function: la function principale sta all'inizio e dà il nome al file; seguono le function secondarie; soltanto la function principale può essere richiamata da altre function esterne al file o dal prompt. Esempio: La funzione polygeom mostra l'uso di una funzione principale che richiama due funzioni secondarie per calcolare area e perimetro di un poligono regolare con numero di lati e lunghezza assegnata.

Esempio (in file polygeom.m) function [a,p] = polygeom(s,n) % polygeom Compute area and perimeter of a regular polygon % Input: s = length of one side of the polygon % n = number of sides of the polygon % % Output: a = total area of the polygon % p = total perimeter of the polygon r = s/(2*tan(pi/n)); % "radius" of the polygon a = area(r,n); p = perimeter(r,n); % ============ subfunction "area" function a = area(r,n) % area Compute area of an n-sided polygon of radius r a = n*r^2*sin(pi/n); % ============ subfunction "perimeter" function p = perimeter(r,n) % perimeter Compute perimeter of an n-sided polygon of radius r p = n*2*r*tan(pi/n); Le funzioni area e perimeter non possono essere richiamate dalla command window

Flussi di controllo if elseif else end switch case otherwise end for end while end break

For counter = start:step:final end Il ciclo for permette di eseguire uno o più comandi un dato numero di volte. Es. Si vuole costruire una matrice mxn tale che a ij =1/(i+j). for i=1:m end for j=1:n end A(i,j)=1/(i+j); Ogni ciclo for ovviamente deve terminare con il proprio end.

While (condizione di entrata) end Il ciclo while ripete l'esecuzione finchè la condizione logica risulta vera. Es. Calcolare il più grande intero n per il quale n! (fattoriale) è un numero <= 100. Possiamo utilizzare un ciclo while che calcola n! e terminare l'esecuzione quando il valore calcolato è maggiore di 100. n=1; prod=1; while (prod<=100) n=n+1; prod=prod*n; end n-1

Esempio: Calcolare la somma di alcuni numeri introdotti da tastiera fino ad ottenere un valore maggiore di 100. Il ciclo si interrompe se si inserisce come numero 0. somma = 0; n=1; while (n~= 0 ) & (somma<=100) n = input( Inserire un numero'); somma = somma + n; end

if elseif else end L'istruzione condizionale if può essere accompagnata da else o elseif. L'istruzione break può essere inserita dentro al ciclo per terminare il ciclo. if expression1 statements1 elseif expression2 statements2 else statements3 end N.B. else e elseif possono essere omessi

Esempio: si vuole verificare che il numero inserito sia pari o dispari. n=input ('Inserisci n ') if n <= 0, break,end if rem(n,2)==0 % funzione resto disp('n pari') else disp('n dispari') end

switch case otherwise Il comando switch può essere usato nel caso di if multipli. switch(relation expression) case 1(value) block of statements case 2(value) block of statements case 3 (value) block of statements otherwise : end

Esempio if rem(n,2) < 0 disp ( 'il numero è negativo e dispari' ) elseif rem(n,2) > 0 disp( 'il numero è positivo e dispari' ) else disp( 'il numero è pari' ) end switch rem(n,2) case -1 disp ( 'il numero è negativo e dispari' ) case 1 disp( 'il numero è positivo e dispari' ) otherwise disp( 'il numero è pari' ) end