INTRODUZIONE A MATLAB Corso di Segnali e Sistemi a.a. 2010/2011.

Slides:



Advertisements
Presentazioni simili
Dipartimento di Matematica
Advertisements

Metodi numerici in Matlab
Lezione 8 Anno accademico Titolare corso: Prof. Costanza Torricelli
MATLAB Cristina Campi
MATLAB.
MATLAB.
MATLAB.
Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica
MATLAB. Outline Grafica 2D Esercizi Grafica 3D Esercizi.
MATLAB.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
MATLAB Stefano Gagliardo
Algoritmi e Programmazione
2 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
3 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
FUNZIONI DI BIBLIOTECA
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Linguaggio MATLAB: costrutti tipici (IF,WHILE…)
Matlab Annalisa Massini Matlab.
Statistica per le decisioni aziendali ed analisi dei costi Modulo II - Statistica per le decisioni Aziendali Richiami di Algebra Matriciale.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
MATLAB. Annalisa Pascarella
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB. Annalisa Pascarella
MATLAB.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Metodi iterativi G. Puppo.
FEM -2 Gabriella Puppo.
Metodi FEM per problemi ellittici lineari a tratti Gabriella Puppo.
Metodi numerici per equazioni lineari iperboliche Gabriella Puppo.
Funzioni matematico – statistiche I comandi matematici di più comune utilizzo, applicabili a scalari e matrici, sono: Sqrt(x), che calcola la radice quadrata.
Importazione di dati Nellambito dellutilizzo di qualsiasi software statistico una necessità è quella di importare dati esterni forniti dallutilizzatore.
Uso dei cicli y t =c+ty t-1 +e Un uso dei cicli può essere quello di creare una serie storica per cui y t =c+ty t-1 +e dove poniamo c e t scalari ed e~N(0,1).
Trimr Gauss, tra le altre, fornisce una preziosissima funzione che risulta di estrema utilità nell’ambito matriciale. Questa funzione, chiamata trimr(x,t,b),
Creazione di matrici Delimititatore di riga Delimititatore di matrice
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Marco Panella MATLAB Marco Panella
Algebra matriciale e linguaggio matriciale in MATLAB
Strutture di controllo in C -- Flow Chart --
ORGANIZZAZIONE DELLA PRESENTAZIONE
Lezione 2 Programmare in ASP
Corso di PHP.
INTRODUZIONE A MATLAB.
INTRODUZIONE A MATLAB LEZIONE 4 Sara Poltronieri slide3.4 matlabintro
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
Diagrammi 2D e 3D Funzioni di ordine superiore
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Script 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.
Milano, 17 Dicembre 2013 Informatica B Informatica B Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli:
Lezione 1: Introduzione all’uso di Matlab
Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.
Analisi di Immagini e Dati Biologici Introduzione al linguaggio di MATLAB/OCTAVE Parte 2 16 L5.
Introduzione a Javascript
Informatica Applicata al Suono Tutorial Matlab
Laboratorio di Processi Stocastici Alberto Sorrentino
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
INTRODUZIONE A MATLAB LEZIONE 2 Sara Poltronieri.
INTRODUZIONE A MATLAB Sara Poltronieri. Avvio del programma Avvio di Matlab (Windows) Start  Programmi  Matlab (o icona) Avvio di Matlab (Linux) terminale.
Introduzione a Matlab. Roadmap Saranno presentate le caratteristiche di base del sistema MATLAB TM (MATrix LABoratory) Operazioni elementari su scalari,
Corso di Politiche Regionali Introduzione a STATA a cura del Dott. Augusto Cerqua 15/10/2012.
Planet HT – Genova - Elisa Delvai
Definizioni preliminari Sommario - Caratteristiche Principali – Assegnazione di variabili - Scrittura e manipolazione di matrici e vettori - Funzioni predefinite.
Corso di Segnali e Sistemi
Transcript della presentazione:

INTRODUZIONE A MATLAB Corso di Segnali e Sistemi a.a. 2010/2011

Che cos’è MatLab? Abbreviazione di MATrix LABoratory Software sviluppato da The Mathworks Nasce negli anni '80 come sottoprodotto dei progetti LINPACK ed EISPACK Originariamente realizzato esplicitamente per la manipolazione di matrici Attualmente in commercio è disponibile la versione R2010B

A cosa serve MatLab? Calcolo matriciale e vettoriale Signal Processing Identificazione di modelli Computer Vision Progettazione di controllori Simulazione di sistemi … e molte altre “discipline” ingegneristiche

Come appare MatLab Command Window WorkSpace Directory di lavoro

Come appare MatLab (2) Apre Simulink Help! Selezione directory di lavoro Nuovo file *.m

Interagire con MatLab Generalmente si inseriscono comandi Sulla Command Window: se si chiude l’applicazione si perde ciò che si è scritto! Su un m-file: si può salvare la sequenza di comandi! MatLab può essere visto come un linguaggio di programmazione ad alto livello

Primi comandi Definizione di una variabile scalare: >> a = 3 Sulla Command Window appare a = 3 Se scriviamo: >> a = 3; L’echo viene eliminato

Primi comandi (2) Definizione del vettore riga >> v = [ ]; Definizione della matrice >> A = [1 3 6; ]; Indica la fine di una riga

Primi comandi (3) MatLab gestisce anche numeri complessi: >> z = 3 + i*5;>> z = 3 + j*5; o i e j sono già predefinite come Attenzione a non sovrascriverle! >> r = real(z) >> w = imag(z) Parte reale e immaginaria del numero z >> m = abs(z) >> p = phase(z) Modulo e fase

Operazioni di base Somme tra vettori o matrici: >> C = A + B Prodotto tra vettori e/o matrici: >> C = A * B Attenzione alle dimensioni degli operandi

Operazioni di base (2) Prodotto componente per componente: >> C = A.* B Vale anche per la divisione (./ ) e l’elevamento a potenza (.^ ) Inversione di una matrice (quadrata a rango pieno): >> C = inv(A)>> C = A^(-1) Potenza di una matrice (p scalare qualsiasi): >> C = A^p o

Trasposizione: >> C = A’ Accostamento di matrici Se si scrive:si ottiene incolonnamento Selezione di un elemento (prima riga, seconda col.): Selezione di una riga intera Selezione di una colonna intera Operazioni di base (3) >> C = [A B] >> C = [A; B] >> c = A(1,2) >> C = A(2,:) >> C = A(:,1)

Selezione di una sottosequenza: Somma/prodotto degli elementi: Valore massimo: Somma di vettore e scalare Operazioni di base (4) >> w = v(2:6) >> w = v(1:2:7) >> s = sum(v)>> p = prod(v) >> [m, in] = max(v) >> s = v + 1; m = 6.1 in = 6 (indice del v. max)

Altri comandi >> t = 0:0.1:5 >> t = 0:5 >> zeros(m,n) Matrice m x n di zeri >> ones(m,n) Matrice m x n di 1 >> eye(n) Matrice identità di dim. n >> rank(A) Rango di una matrice >> eig(A) Autovalori >> find(t > n) Restituisce gli indici degli elementi maggiori di n (molto utile!)

Polinomi in MatLab Un vettore v si può associare ad un polinomio in 2 modi: v contiene i coefficienti del polinomio >> v = [1 2 3]; >> roots(v) v contiene le radici del polinomio >> v = [1 2 3]; >> poly(v)

Gestione variabili Ogni variabile è memorizzata nel workspace Alla chiusura di MatLab, si perde il lavoro! Per ispezionare il workspace: >> who >> whos Lista delle variabili del ws. Lista variabili con descrizione Elimina la variabile v Elimina tutte le variabili Salva il ws. nel file n_file.mat Salva in n_f.mat la var. v >> save n_file >> save n_f v >> clear v >> clear all

m-files MatLab gestisce file di estensione *.m Script: sequenza di comandi, si avviano dal workspace Funzione: riceve un input, restituisce un output >> nome_file Avvia il file nome_file.m >> [a, b, c] = fn(C,D) Richiama la funzione fn, che riceve due parametri in ingresso e ne restituisce tre.

Esempio di script A = eye(3); B = ones(3,3); C = A + B; disp(‘Calcolo autovalori di C’); lambda = eig(C) save autov C lambda

Esempio di funzione [C,lambda] = diagonalizza(A,B) C = A + B; lambda = eig(C); Il file.m della funzione deve avere il nome della stessa MatLab conclude automaticamente l’esecuzione del file Non è necessario dichiarare la tipologia di input/output Variabili in input Variabili output

Istruzioni per m-files Istruzione con condizione Cicli for e while if [condizione] [istruzioni] else [istruzioni] end for n=1:100 [istruzioni] end while [condizione] [istruzioni] end Condizioni “booleane” Es: a==4 (uguaglianza) a~=2 (diverso da) a>=2 (magg. eguale) isempty(a) (a vett. vuoto)

Esempi di funzioni MatLab >> sin(t) >> cos(t) >> exp(t) >> expm(A) >> log(t) Seno nei valori del vettore t Coseno Esponenziale Esponenziale matriciale Logaritmo Consultare l’help di MatLab per scoprire altre funzioni Digitare help nome_funzione per informazioni dettagliate su una data funzione

Creazione di grafici In MatLab sono implementate potenti funzioni grafiche Esempio: funzione plot >> t = 0:0.1:3; >> plot(t,sin(t)) Disegna la funzione seno nell’intervallo [1,3], con periodo di campionamento 0.1

Creazione di grafici (2) E’ possibile modificare il grafico con semplici comandi >> plot(t,sin(t),'r--o','Linewidth',2) >> grid on >> axis([ ]) >> title(‘Sinusoide’) >> xlabel(‘Tempo’) >> ylabel(‘Valore’) Output

Creazione di grafici (3) >> plot(t,sin(t),'r--o','Linewidth',2) Linea rossa tratteggiata, con “o” nei punti campionati Spessore linea = 2 >> grid on Griglia di sfondo >> axis([ ]) Assi cartesiani: da -1 a 3 per x, da 0 a 2 per y >> title(‘Sinusoide’) Titolo del grafico >> xlabel(‘Tempo’) >> ylabel(‘Valore’) Specifica la tipologia di ascissa e ordinata

Creazione di grafici (4) E’ possibile disegnare due grafici in un’unica figura Primo metodo >> plot(t,sin(t)) >> hold on >> plot(t,exp(t)) Secondo metodo (cambia i colori automaticamente) >> plot(t,sin(t),t,exp(t))

Creazione di grafici (5) Per non “sovrascrivere” due grafici nella stessa figura, digitare figure prima del secondo grafico Ogni finestra di grafico ha una barra strumenti: Salva figura Zoom grafico “Esplora” grafico Datatip: coordinate punto Edit figura: molto utile!

Creazione di grafici (6) Altri comandi per grafica: >> stem(t,sin(t)) >> stairs(t,sin(t)) Ottimo per segnali campionati Ottimo per segnali interpolati (zero-order holder)

Creazione di grafici (6) Scale logaritmiche (in base 10) >> semilogx(x,y) >> semilogy(x,y) >> loglog(x,y) Ascissa in scala logaritmica Ordinata in scala logaritmica Entrambe in scala logaritmica Esempio: >> semilogy(t,10.^(3*t))

Esercizio di riepilogo… Creare la funzione vect2mat.m che, dato un vettore (riga) di dimensione qualsiasi, esegue le seguenti operazioni: se la lunghezza del vettore è n < 16, aggiunge 16 - n zeri in coda al vettore, altrimenti ne prende i primi 16 elementi; crea una matrice 4x4 spostando gli elementi del vettore a quaterne; scrive sulla finestra di comando se è singolare (comando disp('[messaggio]'); ne calcola gli autovalori, li disegna sul piano complesso e scrive sulla finestra di comando se è una matrice "stabile"; trova gli autovalori reali; di questi, individua quello di modulo maggiore (detto l) e lo restituisce come output della funzione.

Testare la funzione vect2mat.m con uno script che esegue le seguenti istruzioni: genera un vettore riga composto da 2 numeri casuali compresi nell'intervallo [-1,3], utilizzando il comando rand (si faccia ricorso all'help); con un ciclo for allunga il vettore a 25 elementi: l'n-esimo elemento è generato dalla somma dei due precedenti (es: v(1)=1, v(2)=3 --> v(3)=4); richiama la funzione vect2mat.m dando come input il vettore creato; utilizza l'output l per disegnare il grafico di e^l*t, con t = [0:0.001:10], in un grafico con griglia, asse orizzontale da 0 a 10, asse verticale, da 0 a max(e^l*t + 1); nello stesso grafico disegna un gradino di ampiezza unitaria. Esercizio di riepilogo… (2)