Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione 1x1; un array di dimansione N è una matrice 1xN) Gli operatori, quindi, sono definiti per operare su matrici Lab. Info - MATLAB 2 Esempio di programma MATLAB Dati a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c Un elaboratore è un manipolatore di simboli L architettura fisica di ogni elaboratore è intrinsecamente capace di trattare vari domini di definizione dei dati, detti tipi di dato primitivi dominio dei numeri interi dominio dei numeri reali dominio dei caratteri dominio delle stringhe di caratteri Le variabili di MATLAB sono matrici i cui elementi appartengono ad uno di questi domini Lab. Info - MATLAB 3 Lab. Info - MATLAB 4 1
Variabili Consentono di aumentare notevolmente la potenza espressiva del linguaggio Una variabile è caratterizzata da: Un nome che la identifica Un valore modificabile che viene associato al nome Il risultato di un espressione contenente variabili si ottiene sostituendo ad ogni variabile il suo valore. L operazione di assegnazione ( var = expr ) consente di assegnare il valore dell espressione expr1 alla variabile var, quindi di modificare il valore di var Esempio a=3; b=2; // ad a,b (variabili scalari) vengono // assegnati i rispettivi valori c = [1 2;4 1] // c è definita come matrice 2x2 // il simbolo ; separa le righe d = c + c // il valore di d e k vengono modificati, k = a + b // assegnando a d due volte il valore di c // e a k la somma di a e b // dopo l esecuzione di questa operazione // il valore di d è [2 4; 8 2] e k vale 5 Lab. Info - MATLAB 5 Lab. Info - MATLAB 6 Variabili Inizializzazione variabile: la variabile inizia ad esistere al momento in cui le si assegna un valore; a = 0, b = 100; c = [1 2 2; 4 3 8]; Il comando who mostra una lista delle variabili che sono state definite Il comando whos mostra anche altre informazioni (tipo, dimensione ) Stringhe Una stringa è una sequenza di caratteri delimitata da virgolette ciao hello In MATLAB le stringhe possono essere elementi di una matrice itaing = [ ciao, hello ] Lab. Info - MATLAB 7 Lab. Info - MATLAB 8 2
Espressioni MATLAB è un linguaggio basato su espressioni Un espressione è una notazione che denota un valore mediante un processo di valutazione Classificazione degli operatori In base al tipo di operandi (aritmetici, logici, relazionali) Un espressione può essere semplice (una costante, un simbolo di variabile) o composta ogni linguaggio comprende un insieme di operatori che permettono di aggregare altre espressioni (operandi) per formare espressioni composte Esempi : 4*8-2*arcsin(x) a&&(b c) In base al numero degli operandi (unari, binari, ternari..) Lab. Info - MATLAB 9 Lab. Info - MATLAB 10 Operatori aritmetici Operatore Tipo MATLAB Inversione di segno Unario - Somma Binario + Differenza Binario - Moltiplicazione Binario * Divisione (molt. per l inv.) Binario / Molt. elemento per elemento Binario.* Div. elemento per elemento Binario./ Esempi di operazioni a = [1 2 3; 9 5 4; 10 1 7]; b = [1 2 3; 7 1 2; 6 6 9]; c = a*b d = a.*b e = a + b f = -a g = 3*b Lab. Info - MATLAB 11 Lab. Info - MATLAB 12 3
Estrazione di dati da una matrice a = [1 2 3; 9 5 4; 10 1 7] b = a(1,4) % 4 elemento della prima riga c = a(1,:) d = a(:,3) % l intera prima riga (c è un array monodimensionale) % la terza colonna di a (d è un vettore colonna) Anche gli indici possono essere espressi tramite un array 1:n % restituisce un array con tutti i numeri interi da 1 a n e = a(2,[[1:3] 5]) % vettore contenente i primi 3 elementi e il quinto della seconda riga di a Operatori relazionali Relazione MATLAB Uguaglianza == Diversità!= Diversità = Diversità <> Maggiore di > Minore di < Maggiore o uguale a >= Minore o uguale a <= Sono sempre valutati elemento per elemento. Ciò che si confronta deve avere la stessa struttura. Lab. Info - MATLAB 13 Lab. Info - MATLAB 14 Esempio di programma MATLAB Commenti a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 7; 3 9 6; 7 1 5]; c = (a==b) d = (a(3,:)!= b(1,:)) e = (a(:,2) <= b(:,3)) f = (b > a) Sequenze di caratteri precedute da % Es. % Questo è un commento Vengono ignorati nell esecuzione di un programma ma servono a chiarire il significato del programma Possono essere inseriti anche dopo un comando a=5; % Questo è un altro commento Si chiudono automaticamente a fine riga Lab. Info - MATLAB 15 Lab. Info - MATLAB 16 4
Esercizio Data una temperatura in gradi Celsius convertirla in gradi Fahreneit e viceversa, sapendo che nella scala Fahreneit la temperatura di solidificazione dell acqua (0 C) corrisponde a 32 gradi Fahreneit e quella di ebollizione (100 C) a 212 F. Le due scale sono lineari. Quale è l input? Quale è l output? Quante variabili dobbiamo definire e cosa rappresentano? Provare a definire un array contenente più temperature Celsius e applicare la stessa formula di conversione, verificando che il risultato che si ottiene sia un array di lunghezza uguale contenente le temperature F corrispondenti. Lab. Info - MATLAB 17 5