Professional Documents
Culture Documents
- MATLAB
Instruciuni utile
vol 1
OpenBooklet
padre_cosmin
AJUTOR
- cu comanda help se pot obine informaii despre anumite
funcii i instruciuni matlab sau definite de utilizator
>> help subiect %afieaz informaii despre o funcie sau un
director
>>help functie %afieaz prima linie comentat din fiierul
funcie.m
- funcia what returneaz informaii referitoare la fiierele .m,
.mat, .mex din directorul curent
>> what general %afiseaz fiierelor din subirectorul general
- funcia which returneaz calea n care se gsete fiierul
specificat ca argument:
>> which fisier.m %cauta calea unde se gaseste fisierul
- funcia lookfor listeaz toate numele de fiiere din toi
directorii care au n prima linie a helpului cuvintele menionate
ca argument
>>lookfor cuvinte_cheie
AFIAREA CONINUTULUI UNUI DIRECTOR:
>> type fiier %afieaz coninutul fiierului
- funcia crede c extensia fiierului este .m, dac fiierul are
alt extensie, aceasta trebuie precizat
CI DE CUTARE:
- la tastarea unui cuvnt cuvant_cheie n consol, matlab
face urmtoarele cutri:
1) caut variabila cu numele cuvnt_cheie n memorie
2) caut funcia cu numele cuvnt_cheie n memorie
3) caut n directorul curent de pe disc fiierul cu numele
cuvnt_cheie.m
4) caut n directoarele specificate n path fiierul cu numele
cuvant_cheie.m
>> parh %afieaz cilor de cutare curente ale Matlabului
Lista cilor de cutare este setat n fiierele startup.m sau
matlabrc.m
>> p = path %returneaz n variabila p calea curent de
cutare
>> path(p) %schimb calea curent de cutare n cea
memorat n variabila p
>> path ( path, cale_noua) %adaug o nou cale de cutare
la cele deja memorate n variabila path ex:
>> path( path , 'C:\....' )
INFORMAII DESPRE VARIABILELE DINTR-UN
FIIER
Matlab reine variabilele create n timpul rulrii
>> who %listeaz numele variabilelor din spaiul de lucru
>> whos %listeaz numele variabilelor din spaiul de lucru i
afieaz i informaii suplimentare
>> exist('nume_variabila') %verific existena variabilei a
crui nume i-a fost dat ca parametru i returneaz:
0 dac variabila nu exist
1 dac variabila exist n spaiul de lucru
2 dac nume_variabil este un fiier .m n cile matlab
3 dac nume_variabila este un fiier .mex n cile matlab
4 dac nume_variabil este o funcie Simulink
5 dac nume_variabil este o construcie intern matlab
2
4
6
5 6
IRURI DE CARACTERE
irurile de caractere se scriu ntre ' '
sir = 'Ana are mere' %am atribuit variabilei sir irul de caractere
Ana are mere
OPERATORI MATLAB
+
adunare
scdere
*
nmulire
/
mprire
la dreapta
\
mprire
la stnga
^
la putere
Aritmetica IEEE permite folosirea a 16 digii semnificativi i un
interval 10-308 -:- 10+307
OPERATORI RELAIONALI:
Operatori
<
<=
>
>=
==
~=
Semnificatie
mai mic
mai mic sau egal
mai mare
mai mare sau egal
identic
diferit
OPERATORI LOGICI:
op logici
NU
SI
SAU
Simbol
~
&
|
Prioritate
1
2
3
Ex de folosire in condiionalele if
if (A<B) & (C ~= D)
instructiuni
end
CICLUL FOR
variabila = expresie
switch variabila
case valoare1
instructiuni
case valoare 2
instructiuni
..............................
otherwise
instructiuni
end
ex:
CICLUL WHILE:
while expresie
instructiuni
end
val = 3
switch val
case 1
disp('val = 1')
case 2
disp('val = 2')
case 3
disp('val = 3')
otherwise
disp('Nu stiu ce valoare are val')
end
Observaii:
1) dac omitem pasul, este considerat egal cu 1
2) dac i = var_vector, (ex. for i = [1 4 7]) ciclul se repet de
numrul de elemente al vectorului ori, n cazul acesta 3, iar
contorul rmne ncrcat cu ultima valoare din vector, n
cazul acesta 7
3) dac expresia este o matrice, indexul va avea la fiecare
iteraie valorile coninute n urmtoarea coloan a matricei
Bucla se execut de:
Observaii Adugri:
1) Folosim instruciunea break pentru a iei necondiionat
dintr-un ciclu
2) Folosim combinaia de taste Ctrl + C pentru a opri
execuia unui ciclu infinit
3) Instruciunea return determin ieirea din execuie a
funciei, scriptului
4) Instrucinea error(' mesaj ') afieaz mesajul primit ca
parametru dac a aprut o problem n timpul rulrii
scriptului, funciei
ex.: function test(x, y)
if nargin ~= 2
error(nr argumente insugicient)
end
OPETAII ARITMETICE
Operaia
Scalari
Matrice
tablou
Adunare
+
+
+ sau .+
Scdere
- sau .nmulire
*
*
.*
mprire la
\
\
.\
-1
stnga
a\b <=>a *b
mprire la
/
/
./
dreapta
Ridicare la
^
^
.^
putere
Transpunere `
`
.`
Observaii:
1) mprirea la stnga e mprirea mpritorului la
demprit
2) Dac rezultatul operaiei depete realmax(10308)
matlab d ca rezultat inf
3) Dac rezultatul operaiei este mai mic dect
realmin(10-308) matlab d ca rezultat NaN
4) Operaiile cu tablouri:
M3 = M1 .* M2 nmulete element cu element elementele
din matricea M1 cu elementele corespunztoare din M2 i le
pune n poziiile corespunztoare din M3
a11 * b11 a12 * b12 a11 a12 b11 b12
a 21 * b21 a 22 * b22 = a 21 a 22 *b21 b22
__
Ps = A* B = a (i ) * b(i )
i =1
__
__
__
A = a X i + aY j + a Z z
__
__
__
__
B = b X i + bY j + bZ z
atunci
__
__
A* B
cos( A, B) =
=
| A|*| B |
__ __
a X b X + aY bY + a Z c Z
2
X
__
__
__
Pv = A x B = a X
bX
aY
bY
aZ
bZ
__
__
__
__ __
| C |=| A | * | B | * sin( A, B)
1, daca _ nr > 0
sign(nr ) = 0, daca _ nr = 0
1, daca _ nr < 0
MATRICE SPECIALE
>> A=compan(p) p este un vector ai crui elemente sunt
coeficienii unui polinom scrii n ordine descresctoare a
puterii, compan(p) calcuelaz comanionul matriceal
corespunztor.
P( x) = p(1) x n + p(2) x n 1 + ... + p(n) x1 + p(n + 1)
p = [ p(1) p(2) ... p(n + 1)]
p(2) / p (1) p(3) / p (1) ... p(n + 1) / p(1)
A = compan( p) =
[ Hn]
Matricea Hankel
>> H=hankel(c) c este un vector n funcie de care matlab
genereaz matricea hankel
dac c=[3 2 1]
Matricea Pascal
Triunghiul Pascal conine coeficienii binomiali ai
descompunerii (a+b)n
3 2 1
H = hankel (c) = 2 1 0
1 0 0
10 5 6 2
H = hankel (c, l ) = 5 6 2 3
6 2 3 4
4 1
Matricea Hilbert
>> H=hilb(grad)
H (i, j ) =
1
i + j 1
1
1
2
3
1
2
3
4
1
3
1
4
1 2
1 3
1 4 10 20 35
1 5 15 35 70
2 3 4
1 2 3
2 1 2
3 2 1
Matricea Vandermode
>> V=vander(vector), dac vector=[1 2 3 4]
13
3
2
V = 3
3
3
4
12
22
32
42
1
2
3
4
1
1
Matricea Wilkinson
>> W=wilkinson(n)
| n 2i 1 |
,i =
W (i, j ) = 1, i = j + 1
0, in _ rest
2 1 0
1 1 1
W (ordin _ 5) = 0 1 0
0 0 1
0 0 0
0 0
0 0
1 0
1 1
1 2
CALCULE CU MATRICE
Accesarea unui element al matricei se face prin indici
A(i, j) ex.: A(3,3) = A(1,3)+A(2,3)
In cazul vectorilor fie coloan, fie linie, matlab i d
seama c tabloul are doar o singur dimensiune i putem
accesa elementele lui printr-un singur indice
v=[1 4 5] , v(2)=4
w=[5; 6; 8], w(2)=6
Estragerea unui bloc(submatrice) dintr-o matrice:
>> C=M(2:4, 3: 5) % folosind operatorul : putem extrage
pri dintr-o matrice
1
3
M = 2
2
7
2 5 7 2
4
6 4 2 5
3
7 3 0 1 => C =
6
1 6 3 7
9
8 9 3 2
2 5
0 1
3 7
3 2
v
=
3
3 4
4
1 2 3
daca _ A = 4 5 6
7 8 9
3 2 1
7 8 9
B = 6 5 4 __ iar __ C = 4 5 6
9 8 7
7 8 9
1
A = 4
7
dac
3
B = 2
1
2 3
5 6 atunci
8 9
6 9
5 8
4 7
ANALIZ MATRICEAL
Norme:
Vectori:
>> norm(V) %echiv. norm(V, 2) returneaz:
N
=2
= 2 V1 + V2 + ... + V N
Condiionarea :
>> c = cond(M) %returneaz raportul dintre cea mai mare i cea
mai mic valoare singular a acesteia
>> c = rcond(M) %returneaz o valoare aproximativ cu 1.0
dac M este bine condiionat i aproximativ cu 0.0 dac M este
slab condiionat
>> c = condest(M) %estimarea celui mai mic numr de
condiionare
k =1
= P Vk
= P V1
+ V2
+ ... + V N
k =1
1
N
2
k
V1 + V2 + ... + V N
k =1
= max Vk
1 k N
= min Vk
1 k N
Matrice:
>> n = norm(M) %returneaz cea mai mare valoare singular a
lui M, se mai apeleaz i cu n = norm(M, 2)
M
= M * M = max
( M )
N
= max M jk
1 k N
j =1
M
j ,k
2
jk
M 11 + M 22 + ... + M nn
Bibliografie:
1) Matlab, Ed. Teora, Marin Ghinea, Virgiliu Fireeanu
2) http://www.cyclismo.org/tutorial/matlab/
3) http://www.mathworks.com/help/techdoc/