introduzione a matlab - elettrotecnica a... · matlab eseguirà tutte le istruzioni contenute nel...
TRANSCRIPT
![Page 1: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/1.jpg)
Introduzione a MATLABIntroduzione a MATLAB
Università degli Studi di Napoli Federico IICdL Ing. Elettrica
Corso di Laboratorio di Circuiti Elettrici
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
Parte 2
1
![Page 2: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/2.jpg)
L’operatore : (due punti)L’operatore : (due punti)Permette di costruire rapidamente vettori:
>> V=60:-5:5V =
60 55 50 45 40 35 30 25 20 15 10 5
>> k=1:10k =
1 2 3 4 5 6 7 8 9 10
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
60 55 50 45 40 35 30 25 20 15 10 5
Consente di selezionare gli elementi di una matrice:
=354
975
238
AB=A(1,:)
B =8 3 2
>> C=A(:,2)
C =375
2
![Page 3: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/3.jpg)
StringheStringheIn MATLAB è possibile operare, oltre che su numeri, anche su parole (stringhe di caratteri)
>> a='Ingegneria‘a =
Le stringhe si manipolano come i vettori
Un testo in MATLAB è un vettore di caratteri
La stringa va inserita tra apici ‘ ‘
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
a =Ingegneria
>> size(a)ans =
1 10
La stringa va inserita tra apici ‘ ‘
La stringa ‘Ingegneria’ è unamatrice [1××××10]
3
![Page 4: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/4.jpg)
sin - Seno.
asin - Arcoseno
cos - Coseno.
acos - Arcocoseno
tan - Tangente
atan - Arcotangente.
Funzioni elementariFunzioni elementari
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
exp - Esponenziale
log - Logaritmo naturale
log10 - Logaritmo (base 10)
sqrt - Radice quadrata
abs - Valore assoluto
max - Massimo
min - Minimo
4
![Page 5: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/5.jpg)
File .m File .m –– EditorEditor di file .mdi file .mUn file .m (M-file) è un programma riconoscibile da Matlab.
E’ un file di testo contenente codice MATLAB
In Matlab è presente un editor di files .m
Per accedere all’editor: File → New → M-file
Con il comando Save il file sarà salvato nella Current Directory
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
5
![Page 6: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/6.jpg)
I vantaggi di un file .m sono notevoli. Infatti, si può:
� Eseguire un algoritmo senza dover digitare ogni
Se si crea un file prova.m e si digita al prompt il comando
>>prova
Matlab eseguirà tutte le istruzioni contenute nel file.
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
� Eseguire un algoritmo senza dover digitare ogni volta una lunga serie di comandi
� Ottenere una documentazione del lavoro svolto
� Cambiare dati senza dover digitare nuovamente tutti i comandi
� Scambiare programmi con altri utenti
6
![Page 7: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/7.jpg)
Creare il file risolvi.m con il quale risolvere il seguente sistema di equazioni algebriche lineari
Utilizzare il metodo dell’inversa.
EsercizioEsercizio
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
594
0447
5734
321
321
321
−=+−=++=++
xxx
xxx
xxx
7
![Page 8: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/8.jpg)
% Esempio di m-file. Il simbolo % permette di commentare ogni comando
% Cancello dalla memoria tutte le variabili e pulisco la command windowclear all; clc;
% Matrice A dei coefficienti delle incogniteA=[4 3 7; 7 4 4; 4 -9 1];
% Vettore colonna b dei termini notib=[5; 0; -5];
% Controllo se il sistema è ben-condizionato% Se l'indice rcond << 1 il sistema è mal-condizionato
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
% Se l'indice rcond << 1 il sistema è mal-condizionatodisp('Indice rcond')disp(rcond(A))
% Ricavo il vettore colonna x delle incognitex=inv(A)*b;
% Mostro i risultatidisp('Valori delle incognite')disp(' x(1) x(2) x(3)')disp([x(1) x(2) x(3)])
8
![Page 9: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/9.jpg)
� Creare la matrice A[3*4]
� Estrarre da A il vettore b
File .m File .m –– Esercizio Esercizio –– esempio1.mesempio1.m
7 11 3 6
22 5 6 12
4 3 2 8
A
= − −
{ }4 3 2 8b =4
3
� Creare il vettore bt (trasposta di b)
� Calcolare s, prodotto scalare tra la prima riga di Ae il vettore bt
� Risultato: s=115Anno Accademico 2009-2010.
Introduzione a MATLAB – Parte 2
3
2
8
b =
9
![Page 10: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/10.jpg)
% Esempio n.1 di utilizzo Matlab
% Ripulisco la Command Windowclc;
% Cancello dalla memoria tutte le variabiliclear all;
% Creazione della matrice AA=[7 11 3 6; 22 -5 -6 12; 4 3 2 8];
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
A=[7 11 3 6; 22 -5 -6 12; 4 3 2 8];
% Estrazione del vettore bb=A(3,:);
% Trasposta di bbt=b';
% Prodotto 1^riga di A per bts=A(1,:)*bt
10
![Page 11: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/11.jpg)
Immissione di dati da tastiera: inputImmissione di dati da tastiera: input
>> a=input('Inserisci il numero desiderato= ')Inserisci il numero desiderato= 8
a =8
>> b=input('Inserisci la stringa desiderata= ', 's')Inserisci la stringa desiderata= Lezione
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
Inserisci la stringa desiderata= Lezione
b =Lezione
>> c=input('Inserisci il vettore desiderato= ')Inserisci il vettore desiderato= [5 7 11]
c =5 7 11
11
![Page 12: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/12.jpg)
�� ciclo ciclo forfor …. end…. end
MATLAB come linguaggio MATLAB come linguaggio di programmazionedi programmazione
�� ciclo ciclo ifif … end… end
�� ciclo ciclo whilewhile … end… end
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
12
![Page 13: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/13.jpg)
Controllo di flusso: ciclo Controllo di flusso: ciclo forfor …. end…. end
Il ciclo for ha la seguente struttura:for variabile= espressione
istruzioni
Il ciclo for consente di ripetere un certo numero di volte leistruzioni in esso contenute
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
end
for k=1:4y(k)=2^k;
end
>> y
y =
2 4 8 16
13
![Page 14: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/14.jpg)
L‘uso eccessivo di cicli for può allungare i tempi di calcolo
Basta fare una verifica con le istruzioni sotto riportate. Ilvettore V viene ricavato in due modi diversi: nel caso a) siusa un ciclo for; nel caso b) si usa il prodotto elemento perelemento.
Il risultato è lo stesso, ma i tempi di calcolo sonoIl risultato è lo stesso, ma i tempi di calcolo sonoestremamente diversi!
a) R=[1:1:1e+4]; I=[1:1:1e+4]; for k=1:1e+4; V(k)=R(k)*I(k); end;
b) R=[1:1:1e+5]; I=[1:1:1e+5]; V=R.*I;
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
14
![Page 15: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/15.jpg)
Controllo di flusso: ciclo if … endControllo di flusso: ciclo if … end
Il ciclo if ha la seguente struttura:if espressione
istruzioniend
Il ciclo if consente di eseguire istruzioni solo se unadeterminata espressione risulta vera
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
end
if k==2y=1;
elseif k==4y=0;
end
if k==2y=1;
end
if k>0y=1;
elsey=0;
end
15
![Page 16: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/16.jpg)
% Esempio n.2 ciclo if … end
clc; clear all;
% Immissione dati da tastieraA=input('Inserisci un numero=');
if A==5
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
if A==5disp('Ho immesso il numero 5');
elseif A==3disp('Ho immesso il numero 3');
elsedisp('Il numero immesso è diverso da 3 e diverso da 5');
end
16
![Page 17: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/17.jpg)
== uguale~= diverso da
Per il controllo di flusso occorrono gli operatori relazionali
gli operatori relazionali più comuni sono:
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
< minore di<= minore o uguale> maggiore di>= maggiore o uguale
17
![Page 18: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/18.jpg)
I cicli possono essere innestati, uno dentro l’altro.
for variabile1 = espressione1for variabile2 = espressione2
istruzioniend
end
for k=1:3for j=1:2
>> a
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
Esercizi: Creare una matrice unità [5×5]Creare una matrice [5×4] triangolare superiore
for j=1:2a(j,k)=k*j;
endend
a =1 2 32 4 6
18
![Page 19: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/19.jpg)
Controllo di flusso: while if … endControllo di flusso: while if … endIl ciclo if consente di eseguire un blocco di istruzioni finchèuna determinata espressione risulta vera. Quando l’espressionerisulta falsa, il flusso del programma esce dal ciclo.
Il ciclo while ha la seguente struttura:while espressione
istruzioni
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
num=10;eps=.1;k=0;while eps<num
k=k+1; a(k)=num;num=num/2;
end
>> a
a =
10.0 5.0 2.5 1.25 0.625 0.3125 0.1563
istruzioniend
19
![Page 20: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/20.jpg)
Il comando breakIl comando breakIl comando break consente di uscire rapidamente da un ciclofor o while. Se break è presente in un ciclo innestato, essoconsente l’uscita solo dal ciclo interno.
clear all; clc; k=0;
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
k=0;while 1
n=input('Scrivi un numero= ')if n<0, break, endk=k+1;m(k)=n^2;
end
Il ciclo continua finchènon viene inserito unnumero minore di zero
20
![Page 21: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/21.jpg)
Esercizio Esercizio –– esempio3.mesempio3.m
Creare un file .m con cui valutare l’epsilon di macchina
L’epsilon di macchina ε è il numero più piccolo che sommato ad 1 restituisce un valore maggiore di 1 :
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
1 1ε + >
ε dà indicazioni sul massimo numero di cifre significative
In Matlab la costante eps contiene il valore dell’epsilon di macchina
2.2204 16eps e= −
21
![Page 22: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/22.jpg)
% Esempio n.3 % Calcolo dell'epsilon di macchina nella forma 2^-k
% Ripulisco la Command Window e cancello le variabiliclc; clear all;
k=0;epsilon=1; % Comincio dal numero 2^0while 1~=1+epsilon
epsilon = epsilon/2; % Dimezzo il valore di epsilon
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
epsilon = epsilon/2; % Dimezzo il valore di epsilonk=k+1;
end
% Il ciclo è eseguito una volta in più del necessario% Correggo i valori di epsilon e di kepsilon=epsilon*2k=k-1; % epsilon=2^-k
22
![Page 23: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/23.jpg)
EserciziEsercizi
Creare un file .m per risolvere il seguente sistema:
1.Usare il metodo dell’inversa
1 2 3
1 2 3
1 2 3
3 5 2 0
6 5 4
8 4 6 5
x x x
x x x
x x x
+ + =− + + = + − =
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
1.Usare il metodo dell’inversa
2.Usare il metodo di Cramer (con un ciclo for .. end)
Soluzionex1-2.1275; x2= 2.1667; x3= -2.2255
23
![Page 24: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/24.jpg)
EserciziEsercizi
� Creare un file .m per risolvere il precedente sistema:
1. Usare il metodo di Gauss
2. Usare la fattorizzazione LU *
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
2. Usare la fattorizzazione LU *
*) Suggerimento: al prompt digitare il comando help lu
24
![Page 25: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/25.jpg)
EserciziEsercizi
1. Creare un file .m con cui valutare il più piccolo numero xminrappresentabile in Matlab nella forma 2^k
xmin è il numero per il quale si ha: min 02
x =
2. Creare un file .m con cui valutare il più grande numero
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
2. Creare un file .m con cui valutare il più grande numero xmaxrappresentabile in Matlab nella forma 2^k
xmax è il numero per il quale si ha: max *2 infx =
xmin=4.9407e-324 xmax= 8.9885e+307
25
![Page 26: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/26.jpg)
GraficiGrafici
Se x e y sono due vettori della stessa lunghezza, il comandoplot(x,y)permette di tracciare il graficox-y
x=[-2*pi:pi/10:2*pi]; y=sin(x); plot(x,y)
Il comandoplot permette di costruire grafici
0.6
0.8
1
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
-8 -6 -4 -2 0 2 4 6 8-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
26
![Page 27: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/27.jpg)
plot(x,y,’s’)
Il comandoplot consente di specificare il colore, lo stile, Imarker della linea da tracciare. A tal fine, è necessario inserirela stringa ‘s’ :
la stringa ‘s’ ha la forma del tipo ‘s’=‘colore-marker-stile’
Ad esempio:
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
colore: b (blue)g (green)r (red)y (yellow)c (cyan)k (black)
marker: . (punto)o (cerchio)s (quadrato)+ (croce)* (stella)d (rombo)x (ics)
stile: - (continua): (puntata)-. (punto-linea)-- (tratteggiata)
27
![Page 28: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/28.jpg)
plot(x,y,'ro--')
-8 -6 -4 -2 0 2 4 6 8-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
-8 -6 -4 -2 0 2 4 6 8-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
plot(x,y,'mv')plot(x,y,'k*:')
plot(x,y,'gd-')
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
-8 -6 -4 -2 0 2 4 6 8-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
-8 -6 -4 -2 0 2 4 6 8-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
plot(x,y,'mv')plot(x,y,'k*:')
28
![Page 29: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/29.jpg)
Il comandohold on consente di tracciare più curve su unostesso grafico
0.6
0.8
1
>> x=[-2*pi:pi/10:2*pi]; y=sin(x); plot(x,y)
>> z=cos(x); hold on; plot(x,z,'r+-')
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
-8 -6 -4 -2 0 2 4 6 8-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
29
![Page 30: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/30.jpg)
Possiamo inserire un titolo al grafico
>> title(Funzione seno')
Possiamo dare un’etichetta agli assi x e y
>> xlabel(‘x [rad]')>> ylabel(‘sin(x)')
MATLAB assegnaautomaticamenteil rangedegli assi. Si puòusareil
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
MATLAB assegnaautomaticamenteil rangedegli assi. Si puòusareilcomando axis([xmin xmax ymin ymax]) per scegliere il range inmodo autonomo
>> axis([-2*pi 2*pi -1 1])
Il comandogrid consente di mostrare una griglia
>> grid
30
![Page 31: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/31.jpg)
0
0.2
0.4
0.6
0.8
1Funzione seno
sin(
x)
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
-6 -4 -2 0 2 4 6-1
-0.8
-0.6
-0.4
-0.2
x [rad]
31
![Page 32: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/32.jpg)
Il comando Il comando subplotsubplotIl comando subplot permette di costruire più grafici nellastessa finestra
subplot(m,n,p)
Suddividela finestrain unamatrice(m×n) di grafici
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
Suddividela finestrain unamatrice(m×n) di grafici
Seleziona il grafico p-esimo
subplot(2,3,1)
Ottengo una finestra con (2×3) grafici e lavoro sul grafico 1
32
![Page 33: Introduzione a MATLAB - Elettrotecnica a... · Matlab eseguirà tutte le istruzioni contenute nel file. Anno Accademico 2009-2010. ... L‘uso eccessivo di cicli for può allungare](https://reader031.vdocuments.site/reader031/viewer/2022022722/5c67ffad09d3f22d638cce5a/html5/thumbnails/33.jpg)
Creare il file usa_subplot.m con il quale tracciare su un unico grafico le funzioni: sin(x); cos(x); sin(x)^2; cos(x)^2; cos(x)*sin(x); cos(x)+sin(x)
0 5 10-1
-0.5
0
0.5
1Funzione sin(x)
0 5 10-1
-0.5
0
0.5
1Funzione cos(x)
0 5 100
0.2
0.4
0.6
0.8
1Funzione sin(x)2
Anno Accademico 2009-2010. Introduzione a MATLAB – Parte 2
0 5 10 0 5 10 0 5 10
0 5 100
0.2
0.4
0.6
0.8
1Funzione cos(x)2
0 5 10-0.5
0
0.5Funzione sin(x)*cos(x)
0 5 10-1.5
-1
-0.5
0
0.5
1
1.5Funzione sin(x)+cos(x)
33