Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >>...
Transcript of Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >>...
Introduzione a MATLAB
Università degli Studi di Napoli Federico II
CdL Ing. Elettrica
Corso di Laboratorio di Circuiti Elettrici
Dr. Carlo Petrarca
Dipartimento di Ingegneria Elettrica e
Tecnologie dell’Informazione
Università di Napoli FEDERICO II
1
Lezione n.2
Command window. E’ l’area in cui sono digitati
dati e comandi.
Workspace. E’ la zona in cui sono visualizzate
tutte le variabili definite dall’operatore
Command History. E’ l’area in cui sono riportati
tutti i comandi digitati nella Command Window
Current Directory. Mostra i file contenuti nella
directory di lavoro corrente
L’ambiente MATLAB
2
3
Matlab è un ambiente di lavoro basato
principalmente su comandi in linea. Nella
Command window è possibile digitare dati e
comandi. Premendo il tasto INVIO è inoltre
possibile visualizzare il risultato di una
elaborazione.
In MATLAB non esistono dichiarazioni di tipi o di
dimensioni. Quando si dichiara o modifica una
variabile, MATLAB alloca direttamente la
memoria necessaria.
L’ambiente MATLAB
4
Per assegnare il valore 2 alla variabile x basta digitare al prompt (>>)
la seguente riga di comando
>> x=2
>> x=2
x =
2
Creare e modificare variabili
e premere subito dopo il tasto INVIO
Le variabili sono case sensitive: x è diversa da X
I nomi delle variabili devono cominciare con una lettera
5
La variabile x così creata può essere usata per qualsiasi altra operazione
>> y=x*5
y =
10
Assegniamo alla variabile y il valore x*5
6
Per le operazioni elementari di addizione, sottrazione, divisione,
moltiplicazione, elevazione a potenza si usano i simboli “+” “-” “/”
“* ” “^”
Operazioni elementari
ATTENZIONE !
E’ necessario sempre rispettare l’ordine con il quale si assegna il valore ad
una variabile. La variabile deve essere sempre a sinistra del segno “=”
>> x*7=z ERRATO >> z=x*7ESATTO
Sommiamo le due variabili :
>> x+y
ans =
12
Se si omette di specificare la variabile per il risultato, allora
MATLAB crea una variabile ans a cui assegna il valore richiesto.
7
MATLAB segnala sempre la presenza di un eventuale errore
>> x*7=z
??? x*7=z
|
Error: The expression to the left of the equals sign is not a valid target for an assignment
>> x=z
??? Undefined function or variable ‘z'.
8
assegniamo alla variabile w il valore x+y
>> w=x+y
w =
12
calcoliamo il quadrato di w: w2
>> w^2
ans =
144
ATTENZIONE !
se indichiamo una nuova variabile con un simbolo già utilizzato, il valore
precedentemente archiviato verrà definitivamente perso
>> x=x^3
x =
8
In questo caso la variabile x assume il nuovo valore 8
e non più il valore 2 precedentemente assegnato
MATLAB automaticamente stampa l’output di ogni comando: per eliminare
questa risposta è necessario aggiungere “;” al termine del comando
>> c
c =
18
>> c=x+y;
Per visualizzare il valore di una variabile, basta digitarla al prompt (>>) e
premere INVIO
9
Le variabili definite sono elencate nella Workspace
E’ anche possibile visualizzarle tutte nella Command Window digitando il
comando who oppure il comando whos
>> who
Your variables are:
w x y
whos
Name Size Bytes Class Attributes
w 1x1 8 double
x 1x1 8 double
y 1x1 8 double
10
Esistono variabili predefinite di sistema. Eccone alcune
• pi (pi greca)
• inf (infinito)
• NaN (Not a Number) ad esempio 0/0
• i e j (Unità immaginaria = )1
Per cancellare una o più variabili si usa il comando clear
Con il comando clear all si cancellano tutte le variabili
Il comando clc serve per ripulire la Command Window, ma non cancella
le variabili
Il comando save serve per salvare le variabili nel file Matlab.mat
Il comando load serve per richiamare le variabili contenute in Matlab.mat
>> clear y >> clear all >> clc>> clear x c w >> save >> load
11
>> clear x c w cancella le sole variabili x c w
>> save salva tutte le variabili nel file matlab.mat
>> save (‘Dati.mat’, ‘x’, ‘c’) salva le variabili x c nel file Dati.mat
>> load carica le variabili dal file matlab.mat
>> load(‘Dati.mat’) carica le variabili dal file Dati.mat
>> clear all cancella tutte le variabili
>> load(‘Dati.mat’,’x’) carica la sola variabile x dal file Dati.mat
12
ATTENZIONE !
MATLAB possiede un ordine predefinito per lo svolgimento di operazioni
Ordine di priorità: 1) funzioni
2) operazioni tra parentesi;
3) elevamento a potenza;
4) prodotti e divisioni;
5) somme e sottrazioni
A parità di priorità le operazioni si eseguono nell’ordine da sinistra verso destra
>> A=(5-3) ^2*4
A =
16
>> A=5-3^2*4
A =
-31
Esempi:
4*235A
4*235A4*35 2A
>> A=(5-3)^(2*4)
A =
256
4*352
A
>> A=5-3^(2*4)
A =
-6556
13
Nota bene:
Per indicare la priorità delle operazioni si usano solo le parentesi tonde “ ( ”, “ ) ”
Le parentesi quadre o graffe hanno altri usi in MATLAB
4
63
5*347*2 3
2
3A
Calcola l’espressione:
>> (2^3*(7+4))-(3^(2/3)*((5/(3+6))-4))
??? (2^3*(7+4))-(3^(2/3)*((5/(3+6))-4)
|
Error: Expression or statement is incorrect—possibly unbalanced (, {, or [.
Un eventuale errore di sintassi (es. manca una parentesi) è segnalato:
Risultato:
95.1647
E’ possibile scrivere su un’unica riga tutte le operazioni da svolgere.
>> b=7;h=10;A=b*h/2;c=sqrt((b/2)^2+h^2);P=2*c+b;
14
Esempio: calcolare l’area e il perimetro del triangolo in figura
h
b
ccDati:
b=7 cm
h=10 cm
I tasti di direzione sulla tastiera sono molto utili
15
Serve per visualizzare al prompt, in sequenza, tutti i comandi digitati
Serve per scorrere in verso opposto tutte i comandi già digitati
Serve per scorrere verso sinistra i comandi già digitati
Serve per scorrere verso destra i comandi già digitati
Esempio dell’uso dei tasti freccia
>> b=7;h=10;A=b*h/2;c=sqrt((b/2)^2+h^2);P=2*c+b;
16
Esempio: calcolare l’area e il perimetro del triangolo in figura
h
b
ccDati:
b= 9 cm
h=12 cm
Con il tasto freccia su ci appare l’espressione già scritta
Con il tasto freccia sinistra ci muoviamo per cambiare i dati
>> b=9;h=12;A=b*h/2;c=sqrt((b/2)^2+h^2);P=2*c+b;
17
Esercizi
Eseguire le seguenti operazioni in cui: a=5; b=12; c=8.4; d=7.9
dcba *
a
c
d
ba
2
c
a
ba
3
2
2
35/2
4* cba
c
17
Risultato: 8.50
Risultato: 3.0035
Risultato: 30.424
Risultato: -894.6171
18
Svolgimento esercizi>> a=5; b=12; c=8.4; d=7.9;
>> (a+b)*(c-d)
ans =
8.5000
>> ((a^2+b)/d)-(c/a)
ans =
3.0035
>> a^2+((b/a)^3-c)
ans =
30.4240
>> (((c^(2/5))/a)^3)-(b*(4+c^2))
ans =
-894.6171
18
>>x=2;
>> size(x)
ans =
1 1
a è una matrice composta da una riga e da tre colonne
a è un vettore riga di lunghezza (length) 3:
>> a=[1 5 6]
a =
1 5 6
>> size(a)
ans =
1 3
Uno scalare è trattato da MATLAB come una matrice con
dimensione (size) (1,1), formata cioè da una riga e una colonna
E’ possibile creare un vettore riga nel seguente modo:
19
numero di righe numero di colonne
651a
2x
>> length(a)
ans =
3
lunghezza del vettore
E’ possibile creare un vettore colonna terminando ogni riga con “;”
>> b=[7; 5; 8; 1;]
b =
7
5
8
1
>> size(b)
ans =
4 1
Il vettore b è una matrice con 4 righe ed una colonna
Il vettore b è una vettore colonna di lunghezza 4
20
1
8
5
7
b
>> length(b)
ans =
4
L’accesso agli elementi di un vettore avviene tramite indici:
21
>> a=[5 12.3 8 23 4.4]
a =
5 12.3 8 23 4
>> a(2)
ans =
12.3
>> a(end)
ans =
4.4
>> a(4)
ans =
23
elemento di posto 2 elemento di posto 4
>> a(length(a))
ans =
4.4
>> a(5)
ans =
4.4
ultimo elemento del vettore a
ATTENZIONE !
Gli indici devono essere numeri interi
Anno Accademico 2011-2012
Introduzione a MATLAB parte 1
22
Esercizi
1. Costruire il vettore riga A= (12, 3.4, 54, 13.5, 77, 8, 9)
2. Ricavare il numero N di elementi di A
3. Calcolare il prodotto P1 = N*A(2)
4. Calcolare il prodotto P2 tra il primo e l’ultimo elemento del vettore A
5. Calcolare la differenza D=P2-P1
6. Calcolare il risultato R1 della seguente operazione
7. Calcolare il risultato R2 di
8. Calcolare il risultato RT di
)3(
1
A
PD
4
*12
12
A
N
PP
PD
3
32
)4(2
5
412
1
AA
N
A
N
PP
P
22
23
Svolgimento eserciziA=[12 3.4 54 13.5 77 8 9];
>> N=length(A)
N =
7
>> P1=N*A(2)
P1 =
23.8000
>> P2=A(1)*A(end)
P2 =
108
>> D=P2-P1
D =
84.2000
>> R1=(D-P1)/A(3)
R1 =
1.1185
>> R2=(((D-P1)^2)/(P2-P1))*N/A(4)
R2 =
22.4660
>> RT=((((P1^(2/3))/(P2-P1))+N/A(4))/(((N+5)/(A(2)+A(4)))))^3
RT =
0.6554
23