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

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

Introduzione a MATLAB

Introduzione. MATLAB è l acronimo di MATrix LABoratory

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

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

ESERCITAZIONE MATLAB

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Introduzione a Matlab (e al Calcolo Numerico)

Mini-Corso di Informatica

Informatica Applicata al Suono Tutorial Matlab

3. Matrici e algebra lineare in MATLAB

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

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

Aritmetica in Floating Point

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

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 1 - Introduzione a MATLAB

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

MATRICI (ARRAY) IN MATLAB/OCTAVE

Laboratorio Algoritmi 2014 Secondo Semestre

Introduzione a MATLAB. Il Laboratorio. MATLAB Cos è? Oltre alle lezioni. Octave ( ) Scilab ( )

Variabile, costante ed espressione

Software di calcolo numerico, analisi, statistica e simulazione. Un esempio pratico: Octave

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

Corso di Visione Artificiale. Matlab per Visione. Samuel Rota Bulò

Introduzione a Matlab

Finestre grafiche. >> figure >> figure(n)

Corso di Matematica per la Chimica

Corso di Fondamenti di Informatica Classi di istruzioni 2

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

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

MATLAB (1) Introduzione e Operazioni con array

Lezioni su MATLAB. Ingegneria Civile/Meccanica

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Caratteristiche di un linguaggio ad alto livello

VBA Principali Comandi

Introduzione al MATLAB c Parte 2

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

MATLAB - Introduzione Enrico Nobile. MATLAB - Introduzione. E. Nobile - DINMA - Sezione di Fisica Tecnica, Università di Trieste

Laboratorio di Matematica Computazionale A.A Lab. 4

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t.

Costrutti condizionali e iterativi

A = Quindi > b=a(:) b =

SISTEMI DI CONTROLLO Ingegneria Meccanica e Ingegneria del Veicolo

Metodi Numerici con Elementi di Programmazione A.A

Introduzione al MATLAB c Parte 1 Variabili ed array

RETI DI TELECOMUNICAZIONE

Introduzione a MATLAB

Corso di Calcolatori Elettronici Un computer è un dispositivo in grado di eseguire dei calcoli e di prendere delle decisioni logiche.

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 1 - Introduzione a MATLAB

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

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 2 - Introduzione a MATLAB

CONTROLLI AUTOMATICI e SISTEMI ELETTRICI LINEARI INTRODUZIONE A MATLAB

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

FONDAMENTI DI ELABORAZIONE NUMERICA DEI SEGNALI 1 Laboratorio

Introduzione al MATLAB. N. Del Buono

Laboratorio 1. Introduzione a Matlab

Rapida Introduzione all uso del Matlab Ottobre 2002

Inversa di una matrice quadrata. L operatore inv() inverte una matrice quadrata non singolare (cioè in cui il determinate è diverso da zero).

Matlab. Ing. Francesco Licandro. Corso Fondamenti di Telecomunicazioni A.A

Grafici tridimensionali

CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica

INTRODUZIONE A MATLAB

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 1 - Introduzione a MATLAB

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

= < < < < < Matematica 1

INTRODUZIONE A MATLAB Matrix Laboratory

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

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

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Sviluppo di programmi

Metodi numerici con elementi di Programmazione A.A

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

PROGRAMMAZIONE: Le strutture di controllo

Trasmissione del calore con applicazioni numeriche: informatica applicata a.a. 15/16

I numeri reali e la loro rappresentazione

Introduzione al software R

Fortran in pillole : prima parte

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Tutorial di Matlab. Davide Manca Calcoli di Processo dell Ingegneria Chimica Politecnico di Milano

Linguaggio C Espressioni e operatori

Laboratorio 1 Introduzione a Matlab R - Octave

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Raccolta degli esercizi svolti in aula

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript

Un esempio di if annidati

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Introduzione a MATLAB INTRODUZIONE A MATLAB

CORSO DI INFORMATICA GENERALE. Università degli Studi di Bergamo

Programmazione strutturata

Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari

Strutture dati e loro organizzazione. Gabriella Trucco

Fondamenti di Informatica

Dall algoritmo al programma

Transcript:

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

MATLAB MATLAB (abbreviazione di Matrix Laboratory) è un ambiente per il calcolo numerico e un linguaggio di programmazione (interpretato) creato dalla MathWorks. MATLAB consente facili manipolazioni di matrici, visualizzazione di funzioni e dati, implementazione di algoritmi, consente la creazione di interfacce utente e si interfaccia con altri programmi. [...]" Tratto da it.wikipedia.org Esistono prodotti liberi, non del tutto compatibili ma ugualmente validi Octave: http://www.gnu.org/software/octave/ Scilab: http://www.scilab.org/ RlabPlus: http://rlabplus.sourceforge.net/ 2

I comandi I comandi possono essere impartiti: Direttamente da console La linea di comando è rapida ma consente l immissione di un comando per volta Attraverso uno script con estensione.m Lo script consiste in una sequenza di comandi da eseguire e viene richiamato da console Può essere scritto e modificato con un qualunque editor di testo (meglio se in grado di evidenziare la sintassi) 3

Le variabili In Matlab le variabili possono essere: Matriciali bidimensionali Vettoriali (in realtà matrici di dimensione 1xN) Vettoriali (considerate matrici 1x1) Non occorre dichiararle, vengono create al primo utilizzo e la dimensione può variare I tipi di dato supportati nativamente dall ambiente sono: Carattere Intero con o senza segno Numero in virgola mobile Valore logico (booleano) 4

Le matrici Le matrici sono specificate elencandone gli elementi tra parentesi quadre Se due elementi sono separati da uno spazio o da una virgola, allora si considera che appartengano alla stessa riga Quando tra due elementi si mette il carattere ; Matlab passa alla riga successiva Un elemento viene referenziato indicandone esplicitamente la posizione (numero di riga e numero di colonna) 5

Esempi: creazione e accesso > a = 5 %crea a a = 5 %matrice 2 dimensioni > a = [1 2 4; 3 6 7] %valore di a a = 1 2 4 3 6 7 > a(2,3) %accesso singolo ans = 7 > a(:,1) % : = ogni riga ans = 1 3 > a(2,:) % : = ogni colonna ans = 3 6 7 6

Operatori + somma - * sottrazione moltiplicazione.* moltiplicazione per elementi./ divisione per elementi \ ' metodo di riduzione di Gauss trasposizione > maggiore < minore ~= diverso == uguaglianza = assegnazione ; nasconde il risultato : genera una sequenza di valori % commento 7

Esempi: inizializzazioni avanzate > x = [1:4] %il passo di default è 1 x = 1 2 3 4 > a = [1:0.5:2] %[min:passo:max] a = 1.0000 1.5000 2.0000 > b = [a 88] %unisce i vettori... b = 1.0000 1.5000 2.0000 88.0000 > c = [a 0;b; 7 7 7 7] %altro modo di unire c = 1.00000 1.50000 2.00000 0.00000 1.00000 1.50000 2.00000 88.00000 7.00000 7.00000 7.00000 7.00000 8

Esempi: operatori (1) > a = 5; %crea a > b = 7; %crea b > a + b %valuta la somma ans = 12 > a = [3 3 3; 3 3 3]; > b = [1 2 3; 4 5 6]; > a b %valuta la differenza ans = 2 1 0-1 -2-3 > a.* b %moltiplica i singoli ans = 3 6 9 12 15 18 %elementi tra loro 9

Esempi: operatori (2) > b = [1 2 3; 4 5 6] b = 1 2 3 4 5 6 > b %mostra b trasposto ans = 1 4 2 5 3 6 10

Esempi: operatori (3) > a a = 3 3 3 3 3 3 > b = [1 2 3; 4 5 6] b = 1 2 3 4 5 6 > a'*b %moltiplica le matrici ans = 15 21 27 15 21 27 15 21 27 11

Esempi: operatori (4) > a a = 3 3 3 3 3 3 > b = [1 2 3; 4 5 6] b = 1 4 2 5 3 6 > a*b' ans = 18 45 18 45 12

Esempi: operatori (5) > m a = 1.0000 1.5000 2.0000 > m > 1.8 %test di maggioranza ans = 0 0 1 > m ~= 1.5 %test di disuaglianza ans = 1 0 1 > m == 1.5 %test di uguaglianza ans = 0 1 0 13

Costrutti: if (1) Sintassi costrutto if-else if condizione else end istruzioni da eseguire se vero istruzioni da eseguire se falso Esempio: controllo parità if mod(a,2) else end disp('a è dispari')? %scrive a è dispari disp('a è pari')? %scrive a è pari 14

Costrutti: if (2) Sintassi costrutto if if condizione istruzioni da eseguire se vero end Sintassi costrutto if-elseif if condizione1... elseif condizione2... eventuali altri elseif ed un else finale end 15

Costrutti: if (3) Esempio: verificare che un valore sia compreso in un intervallo e diverso da zero if a > MAX disp('a è troppo grande')? elseif a < MIN disp('a è troppo piccolo')? elseif a == 0 else end disp('a è nullo')? disp('a è valido')? 16

Costrutti: while Sintassi costrutto while while condizione istruzioni da eseguire finché vero end Esempio a = 10; while (a > 0)? a = a 1 end 17

Costrutti: for Sintassi costrutto for for variabile = vettore end istruzioni eseguite scorrendo gli elementi del vettore Esempi for id = [2 6 4 1 43] disp (id) %id assume di volta %in volta i valori end %2, 6, 4... for x = 1:10 %x assume i valori disp (x) %da 1 a 10 end 18

Costrutti: switch (1) Sintassi costrutto switch switch variabile end case {elenco1 valori} istruzioni case {elenco2 valori} istruzioni...altri case... otherwise istruzioni 19

Costrutti: switch (2) Esempio switch v case {1, 2, 3, 4, 5} disp ( insufficiente!')? case {6, 7, 8, 9} disp ( sufficiente')? case {10} disp ( eccellente!')? otherwise disp ( votazione non corretta!')? end 20

Lo spazio di lavoro (1) Il workspace è costituito dall insieme di variabili utilizzate durante una sessione Matlab, temporaneamente contenute in memoria who elenca le variabili presenti nel workspace whos elenca le variabili, le relative dimensioni ed il tipo di dati clear cancella il workspace e libera lo spazio in memoria 21

Lo spazio di lavoro (2) E possibile caricare e salvare il workspace Questo risulta estremamente utile quando occorre elaborare vettori di grandi dimensioni generati da altre applicazioni Il comando load carica le variabili memorizzate in un file. load( nomefile.mat ) Il comando save salva le variabili attualmente in memoria in un file. save( nomefile.mat, v1, v2,...), dove v1, v2,... sono le variabili da salvare 22

Funzioni (1) Poiché spesso è necessario effettuare le medesime operazioni su più dati o persino in contesti differenti, è possibile racchiudere una sequenza di operazioni all interno di una funzione Quando necessario, la funzione viene invocata all interno del programma principale Matlab mette a disposizione nativamente un gran numero di funzioni già implementate E possibile aggiungere nuove librerie (toolbox) sviluppate da terzi o realizzare autonomamente funzioni ad-hoc 23

Funzioni (2) Le funzioni sono caratterizzate da un nome, dai dati accettati come input (argomenti) e dai risultati restituiti in output. Le funzioni vanno scritte in file di testo, con estensione.m. Affinché la funzione sia richiamabile da qualunque script è necessario che il nome del file coincida con quello della funzione In caso contrario la funzione si dice privata Le variabile utilizzate internamente dalla funzione non appartengono al workspace principale di Matlab 24

Funzioni matematiche floor(x), ceil(x), round(x)efix(x) Arrotondano il valore di x con diversi criteri: all intero inferiore (floor), superiore (ceil), più vicino (round) o alla parte intera (fix) mod(x,y)e rem(x,y) Calcolano il resto della divisione x/y; in particolare: mod(x,y) = x - y.*floor(x./y) se y ~= 0 rem(x,y) = x - y.*fix(x./y) se y ~= 0 (rem(x,y) e mod(x,y) danno lo stesso risultato se x e y hanno lo stesso segno) isreal(x) e iscomplex(x) Restituiscono 1 se x è rispettivamente reale o complesso find(x) Restituisce gli indici degli elementi non nulli di x zeros, ones, rand, eye Generano matrici di zeri, di 1, di valori casuali o matrici identità disp(espressione) Stampa l espressione indicata 25

Funzioni di supporto lookfor espressione Cerca espressione nell help help comando Mostra la guida in linea del comando indicato 26

Funzioni grafiche plot(x,y,...), semilogx(x,y,...) o semilogy(x,y,...), loglog(x,y,...) mostrano un grafico di y rispetto a x rispettivamente in scala lineare, semilogaritmica e logaritmica subplot Utilizzato in combinazione con plot, per dividere l area del grafico in più sotto-grafici hold impiegato insieme a plot, per sovrapporre grafici figure gestisce le finestre dei grafici 27

Esempio: funzione di conversione Esempio: funzione che converte il voto da 30esimi a 110emi (voto30to110.m) function [voto] = voto30to110(x) if (x>=18 & x<=30) else end voto=floor(x*110/30); voto=-1; Per invocare la funzione: > x = voto30to110(27) x = 99 28

Esempio: grafico sinusoidale x = [ 0 : 0.1 : 10 ]; y = sin(x); plot(x,y) 29

Puntatori a funzione Matlab consente di utilizzare anche i puntatori a funzione Per ottenere il puntatore a una funzione se ne precede il nome col carattere @. Ad esempio, @pippo è il puntatore alla funzione pippo (descritta nel file pippo.m) Grazie ai puntatori è possibile scrivere codice che usa funzioni non ancora note Per richiamare una funzione dato un suo puntatore si usa la funzione feval (function evaluation). 30

Riferimenti MATLAB Help, The MathWorks Inc. Getting Started with MATLAB 7, The MathWorks Inc., 2007 Using MATLAB, The MathWorks Inc., 1997 Analisi Matematica - Esercitazioni con MATLAB, Cavallini N. e Corli A., Università di Ferrara, 2007 GNU Octave, John W. Eaton, 1997 31