DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Strumenti per il calcolo numerico Matlab/Octave Marco D. Santambrogio – Ver. aggiornata.

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

LINGUAGGIO DI PROGRAMMAZIONE C
Dipartimento di Matematica
MATLAB Cristina Campi
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
1 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
3 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
FUNZIONI DI BIBLIOTECA
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Process synchronization
Process synchronization
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. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
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
Marco Panella MATLAB Marco Panella
Algebra matriciale e linguaggio matriciale in MATLAB
Dichiarazioni e tipi predefiniti nel linguaggio C
Espressioni condizionali
4 Tipi di dati & variabili
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 Input/output 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Script 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e stringhe Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
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.
Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La Ricorsione Marco D. Santambrogio – Ver. aggiornata al 21 Maggio 2014.
Introduzione a Javascript
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Ottobre 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Università di Torino – Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a prof. Viviana Bono Blocco 7 – Array.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Marzo 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 8 Aprile 2015.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
FI - Algoritmi e Programmazione 1 Variabili Consentono di aumentare notevolmente la potenza espressiva. Una variabile è caratterizzata da:  Un nome 
INTRODUZIONE A MATLAB Sara Poltronieri. Avvio del programma Avvio di Matlab (Windows) Start  Programmi  Matlab (o icona) Avvio di Matlab (Linux) terminale.
Informatica e Informatica di Base
Excel.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 14 Marzo 204.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 28 Ottobre 2014.
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri in virgola Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Diagrammi 2D e 3D Funzioni di ordine superiore Marco D. Santambrogio – Ver. aggiornata.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri con segno ed in virgola Marco D. Santambrogio – Ver. aggiornata al 20 Marzo.
Sistemi di equazioni lineari. Sistemi di primo grado di due equazioni a due incognite Risolvere un sistema significa trovare la coppia di valori x e y.
Definizioni preliminari Sommario - Caratteristiche Principali – Assegnazione di variabili - Scrittura e manipolazione di matrici e vettori - Funzioni predefinite.
Transcript della presentazione:

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Strumenti per il calcolo numerico Matlab/Octave Marco D. Santambrogio – Ver. aggiornata al 13 Agosto 2014

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEObiettivi Benvenuti nel fantastico mondo di Matlab/Octave! 2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Matlab Cos’è Matlab: strumento (e corrispondente linguaggio) per elaborazioni di calcolo numerico NB: sta per MATrix LABoratory »centrato sulle matrici (ma include generiche funzionalità matematiche) usato nei successivi corsi di calcolo numerico MATLAB è uno strumento commerciale  distribuito, su licenza NON gratuita, da “The MathWorks Inc” Student edition disponibile quando si è al Politecnico  Esiste un altro strumento di nome Octave identico nella concezione, molto simile per gli aspetti operativi disponibile gratuitamente, vedi 3

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Caratteristiche del linguaggio di Matlab/Octave (1) Linguaggio di alto livello  simile a linguaggi di programmazione C, Java, Pascal  possiede comandi sintetici per effettuare complesse elaborazioni numeriche Linguaggio interpretato, comandi e istruzioni NON tradotti in codice eseguibile dall’hardware MA manipolati da un programma (l’interprete) che li analizza ed esegue azioni da essi descritte Linguaggio dinamico  NON occorre dichiarare le variabili risultano definite dal punto in cui vengono introdotte –e vengono incluse in una struttura detta tabella dei simboli  il tipo delle variabili è dinamico a una variabile si possono assegnare, successivamente, valori di tipo diverso (scalari, stringhe, vettori, matrici...) 4

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Caratteristiche del linguaggio di Matlab/Octave (2) In Matlab/Octave tutto è un array  ci sono casi particolari significativi di array array 1x1 sono gli scalari array con una sola riga o colonna sono i vettori array con due dimensioni sono le matrici array con >2 dimensioni: matrici multidimensionali 5

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Screenshot interfaccia MATLAB Contenuto della directory corrente Contenuto della directory corrente Storia dei comandi Finestra dei comandi Lancia i tool di MATLAB ed altro… Mostra le variabili nel workspace 6

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Screenshot dell’interfaccia OCTAVE Linea di comando dell’interprete 7

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE GUI di Octave 8 Finestra dei comandi Contenuto della directory corrente Contenuto della directory corrente Storia dei comandi

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Comandi in Matlab Matlab accetta comandi che l’utente scrive di seguito al “prompt”: >>  es. >> a = 10;  Assegna alla variabile a il valore 10 Esempio di alcuni comandi:  help richiama la guida in linea  diary può essere utilizzato per salvare la sessione di lavoro  who, whos e workspace mostrano l’elenco delle variabili definite  save permette di salvare in un file le variabili definite. Load le ricarica  clear cancella tutte le variabili 9

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEEsempi InputOutputCommento 1234/6ans = calcolo di un valore scalare a=1234/6a = assegnamento alla variabile a del risultato di 1234/6 epseps = e-16 variabile predefinita: la più piccola differenza rappresentabile tra due numeri 2/5ans = divisione “destra” 5/0ans = Inf divisione per zero 5^2ans = 25 potenza real(4+5j)ans = 4 real è una funzione predefinita che restituisce la parte reale di un numero complesso 1+1==2 1+1~=2 ans = 1 ans = 0 1 = vero, 0 = falso, “==” uguale, “~=” diverso (codice ASCII di ‘~’: 126) 10

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esempi con gli array a=[1 2; 3, 4]a = a ora è una matrice 2x2, “;” separa le righe; virgola opzionalmente separa elementi (ma basta lo spazio) aa = restituisce il valore della variabile a x=[-1.3 sqrt(3) (1+2)/5] x = elementi possono essere espressioni x(5)=abs(x(1))x = Notazione con () per accedere a elementi di una matrice; abs valore assoluto; NB: vettore x esteso per includere nuovo elemento; elementi non assegnati sono nulli b=a’b = matrice trasposta (scambiate righe e colonne) c=a+bc = somma di matrici, elemento per elemento (sottrazione con “-” simile) x=[-1 0 2]; y=x'y = 0 2 il “;” blocca l’output, ma non impedisce la valutazione 11

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Altre operazioni con gli array a = []a = [] array vuoto, convenzionalmente rappresenta valore nullo x=1:5x = operatore “:” per produrre vettori di numeri y=0:pi/4:piy = operatore “:” con passo di incremento e valori non interi (pi è pigreco) v=10:-4:-3v = valori negativi del passo e degli estremi sin(y)ans = funzioni predefinite si applicano ai vettori x=[0:pi/100:pi/2]'; [x sin(x)] ans = produce la tabella di sin(x), 0  x  /2 12

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Diagrammi a due dimensioni Diagramma = insieme di coppie che rappresentano coordinate di punti Si usano vettori per contenere sequenze ordinate dei valori di ognuna delle coordinate plot(x,y) disegna digramma cartesiano dei punti che hanno  valori delle ascisse in x, delle ordinate in y  e li congiunge con una linea, per dare continuità al grafico funzioni xlabel per visualizzare nome asse ascisse, ylabel per ordinate, title per il titolo >> x = -10:0.1:10; >> y=x.^3; >> plot(x,y); >> xlabel('ascisse'); >> ylabel('ordinate'); >> title('cubica'); 13

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Diagranna in GUI-Octave 14

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Un esempio di cinematica Due treni partono da due stazioni adiacenti, che distano 15km, viaggiando a velocità di 50m/s e 30m/s in direzione opposta Costruire un grafico che mostra il loro movimento, fino a quando il più veloce raggiunge la destinazione  Il più veloce impiega 15000/50=300s DistanzaTreno1=50·t; DistranzaTreno2= ·t; (per mostrare la provenienza dalla direzione opposta) 15

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONESoluzione t=0:1:300; p1=50 * t; p2=15000 – 30 * t; plot(t,p1); hold on %adesso è possibile inserire nuove curve sul grafico plot(t,p2) hold off 16

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Risultati ottenuti con l’esempio 17

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Istruzioni e ‘;’ – Non come in C Le istruzioni possono essere seguite da ‘;’ ma non è obbligatorio Il ‘;’ blocca la visualizzazione del valore delle variabili coinvolte nell’istruzione  Maggiore velocità di esecuzione Regola di buona programmazione  Inserire sempre il ‘;’, a meno che non si voglia ispezionare il valore di una variabile a scopo di debugging 18

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONECommenti Il simbolo di commento può essere messo in qualsiasi punto della linea. MATLAB ignorerà tutto quello che viene scritto alla destra del simbolo %. Per esempio: >>% This is a comment. >>x = 2+3 % So is this. x = 5 19

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e variabili L’unità fondamentale di dati in MATLAB è l’array Una variabile in MATLAB è una regione di memoria che contiene un array Ha un nome definito dall’utente  Per i nomi valgono regole simili a quelle del C C è un linguaggio a tipizzazione forte  Le variabili vanno dichiarate prima dell’uso MATLAB è un linguaggio a tipizzazione debole  Le variabili vengono create assegnando ad esse dei valori  Il loro tipo è determinato dal tipo dei valori assegnati >> x = [1 2 3]; >> whos x; NameSize Bytes Class Attributes x 1x3 24 double 20

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipo char Una variabile di tipo char contiene uno scalare o un array di valori a 16 bit (8 bit in Octave), ciascuno dei quali rappresenta un carattere  Es: commento = ‘questa e` una stringa’;  (NB: stringhe racchiuse tra apici singoli)  whos commento; NameSizeBytesClassAttributes commento1x2142char Nome della variabileArray di 1x21 caratteri 21

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Alcuni esempi… 22

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Una piccola nota “italiana” 23

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sulla codifica… 24

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipo double Una variabile di tipo double contiene uno scalare o un array di numeri espressi in 64 bit con doppia precisione Questi numeri possono essere  Reali, es var1 = -10.7;  Immaginari, es var2 = 4i; var3 = 4j;  Complessi, es var3 = i; Es: x = [ j 0] Le parti reali e immaginarie possono essere positive e negative nell’intervallo di valori [ , ] 25

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Creazione e inizializzazione di una variabile Le variabili sono create al momento dell’inizializzazione Modi di inizializzazione  Assegnamento  Lettura dati da tastiera  Lettura da file 26

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEAssegnamento variabile = espressione Esempi  a = [0 7+1];  b = [a(2) 5 a]; Risultato  a = [0 8]  b = [ ] secondo elemento di a contenuto di a 27

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Assegnamento: NOTA Non tutti gli elementi devono essere specificati alla creazione…  Ricordiamo: pippo(2) è il secondo elemento di pippo  Cosa sarà elemento_matrice_2D(6,3)?  Ricordiamo: le variabili sono create al momento dell’inizializzazione 28

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Quindi, “unendo” i ricordiamo… 29

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Assegnamento (2) L’array può essere esteso successivamente …  d = [2 5]; d(4)=2;d = [ ] Operatore di trasposizione  g = d’; Creare un vettore enumerando i valori di un insieme: uso dell’operatore ‘:’  x = 1:2:10; x = [ ]  n = 1:3; n = [1 2 3]  m = [n’ n’]

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tabella delle funzioni predefinite FunzioneSignificato zeros (n)Genera una matrice nxn di zeri zeros (m,n)Genera una matrice mxn di zeri zeros (size(arr))Genera una matrice di zeri della stessa dimensione di arr ones(n)Genera una matrice nxn di uno ones(m,n)Genera una matrice mxn di uno ones(size(arr))Genera una matrice di uno della stessa dimensione di arr eye(n)Genera la matrice identità nxn eye(m,n)Genera la matrice identità mxn length(arr)Ritorna la dimensione più lunga del vettore size(arr)Ritorna un vettore [r c] con il numero r di righe e c di colonne della matrice; se arr ha più dimensioni ritorna array con numero elementi per ogni dimensione v(end) m(end, end) ultimo elemento di vettore v ; ultimo elemento dell’ultima riga di matrice m ; la costante end, come indice in un array, denota il più alto valore possibile dell’indice 31

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni predefinite Esempi  a = zeros(2);  b = zeros(2,3);  c = [1 2; 3 4];  d = zeros(size(c));

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE sottoarray: applicazione a vettori Si denota un sottoinsieme di un array usando vettori per valori degli indici >> v=[ ] v = >> v([1 4 7]) ans = >> v(2:2:6) ans = >> v(3:end-2) ans = >> v(v) ans = >> primo, quarto settimo elemento 2:2:6 è il vettore [2, 4, 6]: indica secondo, quarto, sesto elemento dal terzo al terz’ultimo elemento i valori di v usati come indice 33

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE sottoarray: applicazione a matrici m = >> m([1 4], [2 3]) ans = >> m(1:2:5, 1:end) ans = >>>> m(1:2:5, :) ans = >> m(2:2:4, :) = [ ; ]; >> m m = >> tutti gli elementi sulle righe 1 e 4 e sulle colonne 2 e 3 tutti gli elementi delle righe 1, 3 e 5 notazione ‘:’ abbreviata per 1:end, cioè tutti i valori di quell’indice uso della notazione dei sottoarray per individuare elementi oggetto di assegnamento 34

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Nota sui sottoarray 35 Perchè: temp(2:2:4, :)… e non temp(2:4, :)? Perchè temp(2:4, :) sono le righe 2, 3 e 4!!!

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Uso di uno scalare per assegnare valori a un array Esempio  m(1:4, 1:3) = 3 Il modo con cui uno scalare viene assegnato a un array dipende dalla forma dell’array che viene specificata a sinistra dell’assegnamento Esempio 2  m(1:2, 1:2) =

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Uso dell’array vuoto [] per cancellare elementi di un array Un array vuoto [] assegnato a un elemento di un vettore non crea un ‘buco’ ma cancella un elemento e ricompatta il vettore Un array vuoto [] non assegnabile a singoli elementi di matrici (non si possono “creare buchi”) Assegnabile a intere righe o colonne di matrici, che vengono cancellate (ricompattando la matrice) >> a=[ ]; >> length(a) ans = 5 >> a(3) ans = 3 >> a(3)=[] a = >> a(3) ans = 4 >> length(a) ans = 4 >> m=magic(4) m = >> m(3,4)=[] ??? Subscripted assignment dimension mismatch. >> m(3,:)=[] m = >> [r,c]=size(m) r = 3 c = 4 >> m(:,2)=[] m = >> [r,c]=size(m) r = 3 c = 3 37

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array: memorizzazione Matrici memorizzate  per colonna: colonna 1, poi colonna 2, 3, etc.  ogni colonna memorizzata per indici di riga crescenti Array memorizzati in forma lineare nella RAM variando  più velocemente i primi indici  più lentamente quelli successivi NB: opposto a quanto avviene in C

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array: forma linearizzata Si può accedere a un array a più dimensioni come se ne avesse una sola Usando un unico indice si segue l’ordine della memorizzazione Da NON usare nella programmazione  ma aiuta a capire certi costrutti

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Variabili predefinite Matlab definisce un insieme di variabili predefinite (es, pi) Queste variabili spesso rappresentano importanti costanti della matematica (pi è pigreco, i e j sono sqrt(-1) )  Attenzione! Il valore di queste variabili può essere modificato, per esempio circ1=2*pi*10; pi = 3; circ2=2*pi*10;  Il valore di circ2 non sarà più la circonferenza di un cerchio E` fortemente sconsigliato modificare il valore di una variabile predefinita (  evitare di usare variabili i e j come contatori) 40

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Variabili predefinite più comuni Variabile Scopo pi contiene 15 cifre significative di  i, j contiene il valore i ( ) inf (o Inf) rappresentazione dell’infinito (ottenuto di solito come risultato di una divisione per 0) nan Not-A-Number è il risultato di una operazione matematica non definita, es 0/0 clock contiene la data e l’orario corrente. E` un vettore di sei elementi (anno, mese, giorno, ora, minuti, secondi) date contiene la data corrente sotto forma di stringa eps epsilon: la più piccola differenza rappresentabile tra due numeri ans Variabile speciale usata per immagazzinare risultati non assegnati ad altre variabili 41

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Operazioni con scalari e array Operazioni per gli scalari: + - * / ^ Operazioni per gli array  Array operation: eseguita sugli elementi corrispondenti degli array coinvolti (devono avere lo stesso numero di righe e colonne); si indica aggiungendo un punto prima dell’operatore aritmetico a= b= a.* b=  Matrix operation: segue le regole dell’algebra lineare (esempio: prodotto righe per colonne) a= b= a*b = Elevamento a potenza 42

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Cosa succede con il. 43

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Altre funzioni Funzione Scopo ceil(x) approssima x all’intero immediatamente maggiore floor(x) approssima x all’intero immediatamente minore fix(x) approssima x all’intero più vicino verso lo zero max(x) se x è un vettore, ritorna il valore massimo in x e, opzionalmente, la collocazione di questo valore in x; se x è matrice, ritorna il vettore dei massimi delle sue colonne min(x) se x è un vettore, ritorna il valore minimo nel vettore x e, opzionalmente, la collocazione di questo valore nel vettore; se x è matrice, ritorna il vettore dei minimi delle sue colonne mean(x) se x è un vettore ritorna uno scalare uguale alla media dei valori di x; se x è una matrice, ritorna il vettore contentente le medie dei vettori colonna di x; mod(m,n) mod(m,n) è m - q.*n dove q = floor(m./ n) se n ~= 0 round(x) approssima x all’intero più vicino rand(N) genera una matrice di NxN numeri casuali 44

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE funzioni min (e anche max) applicate a vettori e matrici >> a = [ ; ; ; ] a = >> min(a) ans = >> [x y]=min(a) x = y = >> >> b = [ ] b = >> min(b) ans = 2 >> [x y]=min(b) x = 2 y = 3 >> con due risultati dà anche la posizione del minimo (con un solo risultato) dà il valore del minimo per una matrice dà vettore dei minimi nelle colonne per una matrice, con due risultati dà due vettori dei valori minimi nelle colonne e della loro posizione (riga) 45

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Operazioni tipiche per gli array OperazioneSintassi Matlab Commenti Array additiona + bArray e matrix addition sono identiche Array subtractiona – bArray e matrix subtraction sono identiche Array multiplicationa.* bCiascun elemento del risultato è pari al prodotto degli elementi corrispondenti nei due operandi Matrix multiplicationa * bProdotto di matrici Array right divisiona./ brisultato(i,j)=a(i,j)/b(i,j) Array left divisiona.\ brisultato(i,j)=b(i,j)/a(i,j) Matrix right divisiona / ba*inversa(b) Matrix left divisiona \ binversa(a)*b Array exponentiation a.^ brisultato(i,j)=a(i,j)^b(i,j) 46

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Matrix left division Serve per risolvere sistemi di equazioni lineari a11x1+a12x2+a13x3=b1 a21x1+a22x2+a23x3=b2 a31x1+a32x2+a33x3=b3 può essere espresso come Ax=B con A = B= x = di conseguenza, x = A-1B=inversa(A)*b=A\B a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 b1b2b3b1b2b3 x1x2x3x1x2x3 47

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fonti per lo studio + Credits Fonti per lo studio  Introduzione alla programmazione in MATLAB, A.Campi, E.Di Nitto, D.Loiacono, A.Morzenti, P.Spoletini, Ed.Esculapio Capitolo 1 Credits  Prof. A. Morzenti 48