Laboratorio di Matlab



Documenti analoghi
Manuale di MATLAB. (livello base)

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

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

Dati importati/esportati

MATLAB (1) Introduzione e Operazioni con array

Laboratorio Algoritmi 2014 Secondo Semestre

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

Introduzione al MATLAB c Parte 2

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Laboratorio di Matematica Computazionale A.A Lab. 1 - Introduzione a Matlab

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

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

1. Le macro in Access 2000/2003

Introduzione al MATLAB c Parte 1

INTEGRAZIONE DI DOCUSOFT CON UN ALTRO SOFTWARE GESTIONALE CON IL MODULO ACQUIRE&VIEW

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

L utility Unix awk [Aho-Weinberger-Kernighan]

Advanced level. Corso Matlab : Samuela Persia, Ing. PhD.

Alcune regole di base per scrivere un programma in linguaggio C

Editor vi. Editor vi

Lab. 1 - Introduzione a Matlab

Rapida Introduzione all uso del Matlab Ottobre 2002

Corso di Informatica. Immissione di dati. Visualizzazione come foglio dati 1. Visualizzazione come foglio dati 2 11/01/2008

Esercitazione n. 8: Funzionalità base di MS Access

L ACQUISIZIONE E LA GESTIONE DEI DOCUMENTI ELETTRONICI

Esercizio 1. Esercizi 5. Esercizio 3. Esercizio 2 CICLI

Laboratorio di Informatica

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro)

Potenzialità statistiche Excel

Introduzione al Linguaggio C

Funzioni matlab per la gestione dei file. Informatica B Prof. Morzenti

Corso di Archivistica

CORSO DI LABORATORIO DI INFORMATICA

Introduzione a Matlab

Matlab: Gestione avanzata dei file

Le query. Lezione 6 a cura di Maria Novella Mosciatti

INTRODUZIONE A MATLAB Matrix Laboratory

EXCEL FUNZIONI PRINCIPALI

Matlab: Strutture di Controllo. Informatica B

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

OSSIF WEB. Manuale query builder

3.6 Preparazione stampa

CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica

Gestione dei File in C

Esercizio 2. Client e server comunicano attraverso socket TCP

Introduzione al linguaggio C Gli array

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

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

Introduzione al Foglio Elettronico

Strumenti e metodi per la redazione della carta del pericolo da fenomeni torrentizi

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

EUROPEAN COMPUTER DRIVING LICENCE SYLLABUS VERSIONE 5.0

Microsoft Access Maschere

NOZIONI BASE SHELL E SCRIPT LINUX

Calcolatori Elettronici Parte X: l'assemblatore as88

Richiesta pagina PHP (es: index.php)

SAP SRM 7 Manuale GARE ON LINE con cfolders FORNITORI INDICE

MODULO 3. Microsoft Excel. TEST ED ESERCIZI SU:

MANUALE D USO DELLA PIATTAFORMA ITCMS

Introduzione alla programmazione in C

EXCEL FINESTRA DI EXCEL BARRE PRINCIPALI CARTELLA DI LAVORO BARRE DI SPOSTAMENTO

Creare diagrammi di Gantt con Visio 2003

Comandi di Input/Output in Matlab

Introduzione a MATLAB INTRODUZIONE A MATLAB

Laboratorio di Matlab

Plate Locator Riconoscimento Automatico di Targhe

Usare Python in Linux

Introduzione ai database relazionali

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Raggruppamenti Conti Movimenti

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Introduzione agli ambienti

Introduzione allo Scilab Parte 3: funzioni; vettori.

Grafici tridimensionali

NVU Manuale d uso. Cimini Simonelli Testa

Dati testuali. Caratteri e stringhe. Tipi di dato testuali. Dati testuali. Il sistema dei tipi C. Rappresentazione dei testi

Servizio e-business eni Centro Stampa. Manuale Fornitore

Vettori ed assegnamenti in R

Università degli Studi di Verona. Laboratorio di Basi di Dati

A tal fine il presente documento si compone di tre distinte sezioni:

Il sistema operativo UNIX/Linux. Gli script di shell

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Invio File. Fig.1: Maschera per l Invio dei File Precompilati

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Prof. Nicola Cappuccio

RISOLUTORE AUTOMATICO PER SUDOKU

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

Al giorno d oggi, i sistemi per la gestione di database

Corso sul linguaggio SQL

Il sistema di pubblicazione di informazioni didattiche sul sito di Ateneo: guida e regole d uso per i docenti.

Il seguente Syllabus è relativo al Modulo 7, Reti informatiche, e fornisce i fondamenti per il test di tipo pratico relativo a questo modulo

Laboratorio di programmazione

INFORMATICA - I puntatori Roberta Gerboni

Transcript:

Laboratorio di Matlab Rudy Manganelli Dipartimento di Ingegneria dell Informazione, Università di Siena manganelli@dii.unisi.it http://www.dii.unisi.it/ control/matlab/labmatlab.html Luglio 2008

DII - Universtità di Siena 1 Start up MATLAB = Matrix Laboratory aprire e chiudere Matlab interfaccia grafica directory path: >> cd >> cd.. >> cd ( directory_path ) >> cd directory_path oppure usare il current directory browser

DII - Universtità di Siena 2 assegnazione di uno scalare >> a = 13; >> a = 13 a = 13 workspace visualizzazione delle variabili del workspace: >> who per visualizzare tutte le variabili >> whos per visualizzare tutte le variabili con descrizione di struttura eliminazione delle variabili dal workspace: >> clear per eliminare tutte le variabili dal workspace >> clear a; per eliminare la variabile a dal workspace oppure usare il workspace browser

DII - Universtità di Siena 3 ans: ans è il nome della risposta più recente (most recent answer). Variabile che vive quindi a tutti gli effetti nel workspace! richiamo comandi: richiama l ultimo comando digitato string + richiama l ultimo comando digitato che inizia con tale stringa oppure usare il command history browser salvataggio dati: save filename var crea il file di nome filename.mat e salva sul file la variabile var ed i dati ad essa relativi save( filename, var1, var2,...) crea il file di nome filename.mat e salva sul file le variabili ed i dati ad esse relative

DII - Universtità di Siena 4 caricamento dati: load filename.mat carica nel workspace tutti i dati contenuti nel file filename.mat (in alternativa si può anche usare il comando load filename.mat ) cancellazione dati: delete filename.mat cancella dalla directory corrente il file filename.mat Attenzione: cancella qualsiasi file!!! clc: clc è il comando per pulire la finestra di comando.

DII - Universtità di Siena 5 Vettori e Matrici >> V = [13 4 6] vettore riga v = 13 4 6 >> V = [13;4;6] vettore colonna V = 13 4 6

DII - Universtità di Siena 6 >> M = [13 4 6;10 1 9;17 18 11] matrice oppure >> M = [13 4 6; 10 1 9; 17 18 11] M = 13 4 6 10 1 9 17 18 11 Attenzione: i nomi delle variabili sono case sensitive: si distingue cioè tra lettere maiuscole e minuscole!!! Esercizio: Provare a generare matrici, vettori, scalari...

DII - Universtità di Siena 7 OPS: Operatori e caratteri speciali operatori aritmetici operatore scalare matrice + a + b (A + B) ij = A ij + B ij a b (A B) ij = A ij B ij a b A B / a/b = a b A/B = A B 1 \ a\b = b a A\B = A 1 B. non interessante (A. B) ij = A ij B ij./ non interessante (A./B) ij = A ij B ij.\ non interessante (A.\B) ij = B ij A ij Attenzione: Prodotti matriciali righe per colonne: dimensioni concordi!!!

DII - Universtità di Siena 8 operatori relazionali Non esistono variabili booleane 0 : FALSO Tutto ciò che è 0 è VERO operatori == = > < >= <= significato = > < Ogni operatore restituisce 1 se la relazione è vera, 0 se è falsa. Tra matrici le dimensioni devono essere concordi, (A op B) ij = A ij op B ij. Matrici e scalari, (A op b) ij = A ij op b

DII - Universtità di Siena 9 operatori logici simbolo & significato and or not a op b restituisce 1 se è vero, 0 se è falso Tra matrici le dimensioni devono essere concordi, (A op B) ij = A ij op B ij. Matrici e scalari, (A op b) ij = A ij op b Questi sono solo alcuni operatori. Per vedere la lista completa, digitare nel prompt dei comandi: help ops Esercizio: Provare ad utilizzare gli operatori...

DII - Universtità di Siena 10 Funzioni matriciali matrici elementari A = zeros(m,n) matrice di 0 con m righe ed n colonne A = ones(m,n) matrice di 1 con m righe ed n colonne A = eye(n) matrice identità di dimensione n n informazioni sulle matrici [m,n] = size(a) ritorna le dimensioni m,n della matrice A R m n M = length(a) ritorna la dimensione massima di A R m n isequal(a,b) ritorna 1 se A = B, 0 altrimenti

DII - Universtità di Siena 11 manipolazione di matrici A = diag(v); A = v 1 0 0 0 v 2 0........ 0 0 v n a = min:passo:max Definisce un vettore a di n = max-min passo con a(1) = min, a(n) = max + 1 elementi sottomatrici A(v_row,v_col) seleziona la sottomatrice corrispondente agli indici di riga e di colonna definiti rispettivamente nei vettori v_row e v_col Ad es. A(1:4,2:3) seleziona la sottomatrice 4 2 che ha elementi nelle

DII - Universtità di Siena 12 righe 1 : 4 e colonne 2 : 3 B = A assegna a B il trasposto di A, cioè B = A T. concatenazione orizzontale: A = [B1,B2,...,Bn] oppure A = [B1 B2... Bn] assegna alla matrice A la concatenazione orizzontale delle matrici B1,B2,...,Bn concatenazione verticale: A = [B1;B2;...;Bn] assegna alla matrice A la concatenazione verticale delle matrici B1,B2,...,Bn Esempio: >> B1 = [13 4 6]; >> B2 = [18 11 7]; >> A1 = [B1 B2] A1 =

DII - Universtità di Siena 13 13 4 6 18 11 7 >> A2 = [B1;B2] A2= 13 4 6 18 11 7 sotto-assegnazione: >> A2(1,:) = [1 1 1] A2= 1 1 1 18 11 7

DII - Universtità di Siena 14 indicizzazione A(i, j) Seleziona l elemento di posto (i, j) A(:, j) Seleziona tutta la colonna j esima della matrice A A(i, :) Seleziona tutta la riga i esima della matrice A A(i, end) Seleziona l ultimo elemento della riga i esima della matrice A A(end, j) Seleziona l ultimo elemento della colonna j esima della matrice A A(:, end) A(end, :) A(i, :) = [] A(:, j) = [] Seleziona l ultima colonna della matrice A Seleziona l ultima riga della matrice A Elimina la riga i esima della matrice A Elimina la colonna j esima della matrice A A = [] Crea una matrice vuota di dimensioni 0 0

DII - Universtità di Siena 15 variabili speciali variabile ans pi i significato risposta più recente π unità immaginaria inf infinito NaN not a number, per operazioni indefinite ( tipicamente 0 0 ) Per saperne di più... help elmat

DII - Universtità di Siena 16 funzioni elementari trigonometriche ed iperboliche sin(x) cos(x) tan(x) asin(y) acos(y) atan(y) atan2(y,x) sinh(x) cosh(x) tanh(x) asinh(y) acosh(y) atanh(y) Attenzione: nelle funzioni trigonometriche x è espresso in radianti!!!

DII - Universtità di Siena 17 Altre funzioni istruzione significato istruzione significato exp(x) e x abs(x) x log(x) ln(x) imag(x) Im(x) log10(x) log 10 (x) real(x) Re(x) log2(x) log 2 (x) conj(x) x sqrt(x) x sign(x) segno(x) xey x 10 y floor(x) x xˆy x y ceil(x) x Per saperne di più... help elfun

DII - Universtità di Siena 18 Help >> help >> help \toolbox_name >> help ops >> help elmat >> help elfun >> help function_name (ritorna la sintassi esatta) help html con browser.

DII - Universtità di Siena 19 Esercizio 1 1. Definire una matrice A, 3 5 di zeri (utilizzando la funzione zeros). Definire un vettore a di dimensione 1 5 e assegnarlo alla prima riga di A. Definire una matrice B come la trasposta di A ed estrarne la sottomatrice C, 3 3 composta dalla 2, 3 e 4 riga di B. 2. Siano A, B quelle definite al punto 1. Definire una nuova matrice D, 5 3 diversa dalla matrice nulla. Effettuare le tre moltiplicazioni: M1 = D*A M2 = A*D M3 = moltiplicazione elemento per elemento tra D e B. Verificare con la funzione size che le dimensioni siano: M1 5 5; M2 3 3; M3 5 3. Salvare il workspace con le sole matrici A, B, C, M1, M2, M3.

DII - Universtità di Siena 20 Tipi di dato multidimensionali cellarray Matrici i cui elementi sono array; ogni elemento puo avere dimensioni diverse. Definizione di un cell array: C = {A1 A2;B1 B2} assegna alla variabile C un cellarray di 2 2 elementi corrispondenti alle matrici A1,A2,B1,B2 Indicizazzione: D = C{i,j} assegna alla variabile D l elemento (i,j) di C Concatenazione orizzontale e verticale: D = [C [A3; B3]] assegna alla variabile D la concatenazione orizzontale di C con il cellarray [A3;B3] D = [C; [A3 B3]] assegna alla variabile D la concatenazione verticale di C con il cellarray [A3 B3]

DII - Universtità di Siena 21 strutture Matrici i cui elementi sono accessibili attraverso campi testuali; ogni campo può essere di tipo diverso e con dimensioni diverse Definizione di una struttura vuota (non obbligatoria): S = struct( nome,{}, cognome,{}, matricola,{}); assegna alla variabile S una struttura vuota caratterizzata dai tre campi: nome cognome matricola Assegnazione di valori ai campi: >> S.nome = mario ; >> S.cognome = rossi ; >> S.matricola = 652; Attenzione: se la struct è vuota i primi elementi vanno inseriti come S(1).nome, S(1).cognome e S(1).matricola

DII - Universtità di Siena 22 >> S S = nome: mario cognome: rossi matricola: 652 Restituzione valori: la notazione struttura.campo restituisce il valore della struttura per il campo specificato: >> a = S.matricola a = 652

DII - Universtità di Siena 23 M-files Matlab può eseguire sequenze di comandi da file. Questi file sono chiamati M-file perché hanno estensione.m. La maggior parte del codice che produrrete sarà creato e gestito tramite M-files. Due tipi di M-files: script files function files

DII - Universtità di Siena 24 script files - Uno script file consiste di una sequenza di comandi Matlab. - Se creo un file prova.m, e lo eseguo come un comando al prompt invocando: >> prova (N.B. il nome del file senza l estensione) saranno eseguite tutte le istruzioni contenute nel file prova.m. - Le variabili generate da uno script file sono globali e quindi andranno a finire direttamente nel workspace della corrente sessione di Matlab, con le naturali conseguenze. - Un M-files può richiamare un altro M-files, oppure può richiamare se stesso in modo ricorsivo.

DII - Universtità di Siena 25 gestione M-files stringhe : s = hello world ; quello che sta tra gli apici definisce la stringa che viene assegnata ad s >> s s = hello world disp : i comandi disp( hello world ), disp(s); producono lo stesso risultato, cioè mostrano a schermo una stringa: hello world error : il comando error(s); mostra a schermo la stringa s ed interrompe l esecuzione dell M-file input : il comando d = input(s); mostra a schermo la stringa s ed aspetta la digitazione di un valore fino a che non viene premuto il tasto invio. Tale valore viene assegnato alla variabile d. Per input di tipo stringa il comando diventa d = input(s, s ); (cfr. scanf del linguaggio C)

DII - Universtità di Siena 26 stringhe S = sequenza di caratteri definisce un vettore di caratteri assegnato alla variabile S. Funzioni correlate: S = char(x); ritorna una stringa di caratteri associati ai valori di X, in codifica ASCII. Es. >> char(123) "{" X = double(string); ritorna i valori numerici associati alla stringa S, in codifica ASCII Es. >> double( { ) "123"

DII - Universtità di Siena 27 S = [S1 S2... Sn]; concatenazione orizzontale di n stringhe S = strcat(s1,s2,...,sn); concatenazione orizzontale di n stringhe S = strvcat(s1,s2,...,sn); concatenazione verticale di n stringhe S = {S1 S2... Sn}; crea un vettore le cui componenti sono n stringhe ischar(s); restituisce 1 se S è una stringa, 0 altrimenti

DII - Universtità di Siena 28 iscellstr(s); restituisce 1 se S è un vettore di stringhe, 0 altrimenti S = sprintf(format,a); genera stringhe (cfr. printf del linguaggio C). Es. 1 : >> s = sprintf( La matrice ha dimensioni %dx%d.,2,3) s = La matrice ha dimensioni 2x3 Es. 2 : >> s = sprintf( %s\n, hello, word ) s = hello word

DII - Universtità di Siena 29 Esercizio 2 Creare uno script file che richiede: 1. Digitazione in ingresso di nome e cognome (usare input) e salvarli in una struttura con i campi nome e cognome. 2. Concatenare nome e cognome verticalmente e orizzontalmente nelle quattro combinazioni possibili assegnandole a quattro diverse variabili 3. Generare i due vettori dei codici ASCII relativi alle lettere del nome e cognome 4. Utilizzando la function predefinita flipdim(v,2) rigirare questi ultimi e utilizzando char calcolarne le stringhe associate s1 e s2. 5. In uscita il file deve fare il display di due frasi : il mio nome = s1 il mio cognome = s2 6. fare in oltre la media dei codici dei caratteri nome e cognome e generare la stringa s3 che contiene il carattere relativo.