Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
. . . . . .
MAnnaggia, Troppo LABorioso!
. . . . . .
MATLAB Layout
. . . . . .
MATLAB Help
. . . . . .
La finestra di MATLAB I
. . . . . .
La finestra di MATLAB II
. . . . . .
Espressioni
Il linguaggio di MATLAB si basa su espressioni del tipo
variabile = espressione:
.
>> x = 5;
>> y = 6;
>> z = x + y
z=
. 11
o semplicemente espressione:
.
>> 100/3
ans =
. 33.3333
Note:
omettendo il simbolo ; il risultato di un’espressione viene
visualizzato sulla command window
la risposta di un’espressione senza assegnamento viene
scritta in una variabile di default chiamata ans (answer)
il simbolo % inizia una parte di commento, e ciò che lo
segue su una determinata riga non viene quindi valutato
dal sistema
. . . . . .
Variabili in MATLAB
Tipi di dati
matrici n-dimensionali di numeri interi, reali,
complessi
⇒ MATLAB tratta interi e reali come double (reali
in doppia precisione)
stringhe (sequenze di caratteri)
strutture dati più complesse (tipi strutturati)
variabili logiche che possono assumere il valore 1
(“TRUE”) o 0 (“FALSE”)
Naming conventions
MATLAB è case-sensitive
i nomi di variabili:
possono contenere fino a 19 caratteri
devono iniziare con una lettera
possono contenere lettere, numeri e il
carattere '_'
. . . . . .
Dichiarazioni di variabili
. . . . . .
Operatori I
Operatori scalari
+, -, *, /, ^
sin, cos, tan, asin, acos, atan
exp, log, log10
abs, sqrt, sign
Operatori vettoriali o matriciali
+, -, *, ^, /, \, '
⇒ * moltiplicazione riga per colonna (A · B 6= B · A !)
⇒ / divisione a destra (A/B = B · A−1 )
⇒ \ divisione a sinistra (A\B = A−1 · B)
⇒ ' trasposizione amn → anm
prodotti, divisioni e elevamenti a potenza elemento
per elemento (element-wise) si ottengono
antecedendo un punto all'operatore:
⇒ .*, ./, .^
tutti gli altri operatori scalari agiscono
element-wise su vettori e matrici
. . . . . .
Operatori II
. . . . . .
Operatori III
. . . . . .
Operatori IV
Creazione di vettori
senza specificare incremento
⇒ t=1:5 → t=[1 2 3 4 5]
con incremento positivo specificato
⇒ t=0:0.2:1 → t=[0 0.2 0.4 0.6 0.8 1]
con incremento negativo specificato
⇒ t=2:-0.2:1 → t=[2 1.8 1.6 1.4 1.2 1]
con intervallo lineare e numero di elementi
specificati
⇒ t = linspace(0.01,100,1000)
crea un vettore di 1000 elementi equispaziati
tra 0.01 e 100
con intervallo logaritmico e numero di elementi
specificati
⇒ t = logspace(-2,2,1000)
crea un vettore di 1000 elementi equispaziati in
scala logaritmica tra 10−2 e 102
. . . . . .
Operatori V
Creazione di matrici
eye(n) → matrice identità n × n
zeros(m,n) → matrice nulla m × n
ones(m,n) → matrice di 1 m × n
rand(m,n) → matrice m × n di valori casuali (tra 0 e 1)
diag(X):
⇒ se X è un vettore con n elementi → matrice
diagonale n × n con gli elementi di X sulla diagonale
⇒ se X è una matrice diagonale n × n → vettore di n
elementi pari a quelli della diagonale di X
[X Y] = meshgrid(x,y) → supporto di una griglia 2D da
due vettori x e y
Operatori condizionali
<, >, <=, >= → operatori d’ordine (<, >, ≤, ≥)
==, ~= → operatori di confronto (=, 6=)
~ → NOT logico
& → AND logico
| → OR logico
. . . . . .
Comandi di uso generale
Costrutto IF…THEN…ELSE…
.
if condizione1
operazioni1;
elseif condizione2
operazioni2;
else
operazioni3;
.
end
Costrutto SWITCH…CASE…
.
switch variabile
case espressione1
operazioni1;
case {espressione2, espressione3, espressione4}
operazioni234;
...
otherwise
operazioni;
.
end
. . . . . .
Cicli
Costrutto FOR…
.
for k = ninizio:step:nfine
operazioni;
.
end
Costrutto WHILE…
.
while condizione
operazioni;
.
end
Nota
⇒ In generale, tutti i costrutti in MATLAB
permettono la concatenazione di diverse istruzioni,
che vanno separate da virgole
. . . . . .
Visualizzazione Dati I
. . . . . .
Visualizzazione Dati II
. . . . . .
MATLAB Editor
. . . . . .
Scripts
Esempio di Script
Gli scripts sono liste di
istruzioni contenute in un
file .m
Una volta completati (e
salvati), possono essere
avviati:
digitando il nome del
file sulla linea di
comando
dal menu Debug → Run
cliccando sull’icona
Nota
utilizzo del comando
input(stringa) per
l'inserimento in linea
di valori
. . . . . .
Functions
Esempio di Function
Gli M-Files contenenti
functions devono avere
lo stesso nome della
funzione stessa
Con riferimento
all'esempio:
calcola_somma → nome
function
x, y → variabili in
ingresso
z → variabile in uscita
Nota
Le variabili utilizzate in
una funzione sono
locali
. . . . . .
Esercizi proposti I
creare la matrice A = [1 2 3; 4 5 6; 7 8 9]
calcolare determinante e rango di A
aggiungere ad A una matrice 3 × 3 di numeri casuali
e scrivere il risultato nella matrice B
aggiungere ad A la matrice identità 3 × 3 e scrivere
il risultato nella matrice C
aggiungere ad A una matrice 3 × 3 di soli 1 e
scrivere il risultato nella matrice D
aggiungere ad A la sua trasposta e scrivere il
risultato nella matrice E
introdurre il vettore colonna b = [3; 4; 5]
commentare il risultato delle istruzioni A\b, A\b', B\b
salvare le variabili del workspace nel file test.mat
cancellare l'intero contenuto del workspace
ricaricare il workspace contenuto nel file test.mat
stampare a schermo informazioni sulle variabili del
workspace
. . . . . .
Esercizi proposti II
. . . . . .