Sunteți pe pagina 1din 7

Programare si limbaje II

Anul I, AR+ITT
1 Recapitulare
Curs 1 + Laborator 1 + Laborator 2
1.1 Operatori
1.1.1 Operatori aritmetici
Funcie echivalent
plus
uplus
minus
uminus
mtimes
mpower
power
mldivide
mrdivide

Plus
Plus unar
Minus
Minus unar
nmulire de matrice
Ridicare la putere
Ridicare la putere (matriceal)
Backslash sau mprire
matriceal la stnga
- Slash sau mprire
matriceal la dreapta

1.1.2 Operatori relaionali


Funcie echivalent
eq
ne
lt
gt
le
ge

Descriere

ismember

+
+
*
^
.^
\
/

Operator
==
~=
<
>
<=
>=

Operator

Descriere
I pe bii.
Complement binary pe bii.
SAU pe bii.
Cel mai mare ntreg flotant n dubl precizie.
SAU EXCLUSIV pe bii.
Seteaz bit la poziia specificat.
Citete bit la poziia specificat.
Deplasare pe bii.

1.1.5 Operatori pe mulimi


Funcie
union
unique
intersect
setdiff
setxor

Operator

I logic
&&
SAU logic
||
I logic element cu element
&
SAU logic element cu element
|
Negaie logic (NOT)
~
SAU EXCLUSIV logic
Adevrat dac exist un element n vector diferit de zero
Adevrat dac toate elementele din vector sunt diferite de zero

1.1.4 Operatori pe bii


Funcie
bitand
bitcmp
bitor
bitmax
bitxor
bitset
bitget
bitshift

Descriere

Egal
Diferit
Mai mic
Mai mare
Mai mic sau egal
Mai mare sau egal

1.1.3 Operatori logici


Funcie echivalent
relop
relop
and
or
not
xor
any
all

Descriere

Descriere

Mulimea reuniune a doi vectori.


Elementele unice dintr-un vector (elimin duplicatele).
Mulimea intersecie a doi vectori.
Mulimea diferen a doi vectori.
Mulimea SAU-exclusiv a doi vectori (valorile care nu se afl n
intersecia celor doi vectori).
- Verificarea apartenenei elementelor unui vector ntr-o mulime.

1.2 Comenzi
help
more
doc
demo
format

1|Page

Conf.dr.ing. Ovidiu-Aurelian Detean Programare si limbaje II

Curs 1. Introducere in Matlab

1.3 Variabile
ans

1.4 Constante
pi
eps
i
j
Inf
NaN

1.5 Funcii
length()
sort()
sum()
prod()
min()
max()
mean()
cumsum()
cumprod()

1.6 Caractere speciale


. Punct zecimal
325/100, 3.25 i .325e1 reprezint acelai lucru.
. Operaii cu tablouri
Operaiile multiplicative element cu element sunt obinute folosind operatorii prefixai cu punct: .* , .^ , ./ , .\ sau
.'. De exemplu, C = A ./ B este matricea avnd elementele c(i,j) = a(i,j)/b(i,j).
( ) Parantezele rotunde
Sunt folosite pentru a indica precedena n expresii aritmetice i pentru a cuprinde argumentele funciilor. Mai
sunt folosite pentru a delimita indicii vectorilor i matricelor.
Dac X i V sunt vectori, atunci X(V) reprezint concatenarea elementelor X(V(1)), X(V(2)),..., X(V(N)), unde
dimensiunea lui X(V) este 1xN dac X este un vector linie, sau Nx1 dac X este un vector coloan. Componentele
lui V trebuie s fie ntregi i sunt folosite pe post de indici. Dac oricare dintre indici este mai mic dect 1 sau mai
mare dect lungimea lui X, va fi afiat un mesaj de eroare.
Parantezele sunt suportate de toate tipurile de date MATLAB, incluznd tablourile tradiionale n dubl precizie,
precum i structurile, celulele i tablourile de caractere.
Exemple:
X(3) este al treilea element al lui X.
X([1 2 3]) reprezint primele trei elemente ale lui X.
Dac X are N componente, construcia X(N:-1:1) le reprezint n ordine invers.
X(X>0.5) returneaz elementele lui X care sunt > 0.5.
Acelai mode de adresare indirect este utilizat n matrice i tablouri. Dac V are M componente i W are N
componente, atunci A(V,W) este matricea MxN format din elementele lui A, ale crui indici sunt elementele lui V
i W. De exemplu, A([1,5],:) = A([5,1],:) interschimb liniile 1 i 5 ale lui A.
[ ] Parantezele ptrate
Sunt folosite pentru a construi vectori i matrice.
Exemple:
2|Page

Conf.dr.ing. Ovidiu-Aurelian Detean Programare si limbaje II

Curs 1. Introducere in Matlab

[6.9 9.64 sqrt(-1)] este un vector cu trei elemente separate prin spaii.
[6.9, 9.64, sqrt(-1)] reprezint acelai lucru.
Vectorii [1+i 2-i 3] i [1 +i 2 -i 3] nu sunt identici. Primul are trei elemente, iar al doilea cinci.
[11 12 13; 21 22 23] este o matrice 2x3. Caracterul (;) marcheaz sfritul primei linii.
, Virgula
Este folosit pentru a separa indicii matricelor i argumentele transmise funciilor De asemenea, delimiteaz
instruciunile n liniile cu mai multe instruciuni.
; Punct virgul
Se utilizeaz n interiorul parantezelor ptrate pentru a indica sfritul liniilor ntr-o matrice. Mai este folosit dup
o expresie sau instruciune atunci cnd se dorete suprimarea afirii rezultatului n fereastra de comenzi.
: Dou puncte
Este unul dintre cei mai utili operatori n MATLAB. Creeaz vectori, indici de tablouri i iteratori pentru ciclurile
for.

Operatorul (:) folosete urmtoarele reguli pentru crearea vectorilor cu elemente echidistante:
j:k
este la fel cu [j,j+1,...,k]
j:k

este vid dac j > k

j:i:k este la fel cu [j,j+i,j+2i, ...,k]


j:i:k este vid dac i == 0, dac i > 0 i j > k, sau dac i < 0 i j < k,

unde i, j i k sunt scalari.


Definiiile care descriu utilizarea caracterului (:) pentru extragerea liniilor, coloanelor i elementelor vectorilor,
matricelor i tablourilor multidimensionale sunt prezentate mai jos:
A(:,j)

este coloana j a matricei A

A(i,:)

este linia i a matricei A

A(:,:)

este tabloul bidimensional echivalent. Pentru matrice, este acelai lucru cu A.

A(j:k)

reprezint elementele A(j), A(j+1),...,A(k)

A(:,j:k)

reprezint A(:,j), A(:,j+1),...,A(:,k)

A(:,:,k)

este pagina k a tabloului tridimensional A.

A(i,j,k,:) este un vector din tabloul A cu patru dimensiuni. Vectorul include: A(i,j,k,1), A(i,j,k,2),
A(i,j,k,3) etc.
A(:)

reprezint toate elementele lui A, privite ca o singur coloan. n partea stng a unei instruciuni
de atribuire, A(:) umple tabloul A, pstrndu-i forma iniial. n acest caz, membrul drept al
instruciunii trebuie s conin acelai numr de elemente ca i A.

Exemple:
Folosirea operatorul (:) cu ntregi,
D = 1:4

genereaz
D =
1

Folosirea operatorul (:) pentru crearea unui vector cu un increment real ntre valoarea iniial i cea final,
E = 0:.1:.5

produce
E =
0

0.1000

0.2000

0.3000

0.4000

0.5000

3|Page

Conf.dr.ing. Ovidiu-Aurelian Detean Programare si limbaje II

Curs 1. Introducere in Matlab

Curs 2. Introducere in Matlab (2)


2.1 Clase Matlab
Tipuri de date = clase (n Matlab).
Exist 15 clase fundamentale, fiecare putnd alctui matrice sau tablouri.
Dimensiunea minim: 0x0.
Dimensiunea maxim: tablouri n-dimensionale de orice mrime.
Clasele Matlab fundamentale:

Fig. 2.1 Clasele Matlab de baz


2.1.1 Clasa boolean (logical)
Clasa boolean (logic) este reprezentat printr-o stare true sau false folosind numerele 1, respectiv 0.
Anumite funcii i operatori MATLAB returneaz valori logice true sau false pentru a indica dac o anumit
condiie a fost evaluat la o valoare adevrat sau nu. De exemplu, expresia 50>40 returneaz o valoare logic
true.

MATLAB suport i tablouri de valori logice. De exemplu, urmtoarea instruciune returneaz un vector de valori
logice:
>>[30 40 50 60 70] > 40
ans =
0
0
1
1

Urmtoarea instruciune returneaz un tablou 4x4 cu valori logice:


>>x = magic(4) >= 9
x =
1
0
0
0
1
1
1
0
0
0
1
1

1
0
1
0

Funciile MATLAB ale cror nume ncep cu is (de exemplu ischar, issparse), returneaz valori sau tablouri
logice.
Funcie de conversie: logical()
Aciune: convertete valorile numerice n valori logice.
4|Page

Conf.dr.ing. Ovidiu-Aurelian Detean Programare si limbaje II

Curs 1. Introducere in Matlab

Sintax:
K = logical(A)

Descriere:
K = logical(A) returneaz un tablou care poate fi folosit pentru indexare logic sau teste logice.
A(B), unde B este un tablou logic de aceleai dimensiuni cu A, returneaz valorile lui A situate la coordonatele n
care partea real a lui B este diferit de zero.
A(B), unde B este un tablou logic de dimensiuni mai mici dect A, returneaz valorile vectorului coloan A(:)
situate la coordonatele n care partea real a vectorului coloan B(:) este diferit de zero.

Observaii:
Majoritatea operaiilor aritmetice elimin caracterul logic al unui tablou. De exemplu, adunarea unei constante
zero la un tablou logic i elimin caracteristicile logice.
A = +A este cel mai simplu mod de a converti un tablou logic, A, la un tablou numeric n dubl precizie.
Tablourile logice sunt create, de asemenea, folosind operatorii relaionali (==,<,>,~, etc.) i funcii precum any,
all, isnan, isinf, sau isfinite.
Exemple:
Fiind dat matricea A = [1 2 3; 4 5 6; 7 8 9], instruciunea B = logical(eye(3)) returneaz un
tablou logic
B =
1
0
0

0
1
0

0
0
1

care poate fi folosit n indexarea logic, returnnd elementele de pe diagonala principal a lui A:
>>A(B)
ans =
1
5
9

Totui, ncercarea de a indexa matricea A folosind tabloul numeric eye(3) produce urmtoarea eroare:
>>A(eye(3))
??? Subscript indices must either be real positive integers or
logicals.
2.1.2 Clasele numerice
2.1.2.1 Clasele numerice n virgul flotant
MATLAB reprezint numerele reale n virgul flotant fie n formatul simpl precizie, fie n formatul dubl precizie.
Formatul implicit este n dubl precizie.
Simpl precizie (single)
Tab. 2.1 Standardul IEEE 754 pentru simpl precizie
Bii
Utilizare
31
Semn (0 = pozitiv, 1= negativ)
30-23
Exponent
22-0
Partea fracionar f a numrului 1.f
Domeniul de reprezentare: -3.4 x 1038 pn la 3.4 x 1038 .
Necesit mai puin memorie dect formatul n dubl precizie.
Funcie de conversie: single()
Aciune: convertete o valoare numeric spre formatul simpl precizie
5|Page

Conf.dr.ing. Ovidiu-Aurelian Detean Programare si limbaje II

Curs 1. Introducere in Matlab

Sintax:
B = single(A)

Descriere:
Convertete matricea A spre simpl precizie, atribuind valoarea rezultat variabilei B.
Exemple:
>>a = magic(4);
>>b = single(a);
>>whos
Name
Size
a
b

4x4
4x4

Bytes
128
64

Class
double array
single array

Dubl precizie (double)


Tab. 2.2 Standardul IEEE 754 pentru dubl precizie
Bii
Utilizare
63
Semn (0 = pozitiv, 1= negativ)
62-52
Exponent
51-0
Partea fracionar f a numrului 1.f
Necesit mai mult memorie dect formatul n simpl precizie.
Funcie de conversie: double()
Aciune: convertete o valoare numeric spre formatul dubl precizie
Sintax:
double(x)

Descriere:
Returneaz valoarea n dubl precizie a lui x.
Funcii de determinare a domeniului de reprezentare
v = realmin
v = realmin ('classname')
v = realmax
v = realmax('classname')

unde classname poate fi single sau double.


Exemple:
- determinarea limitelor minime pentru clasele n virgul flotant:
>> realmin('single')
ans =
1.1755e-038

echivalent cu 2^(-126)
>> realmin('double')

6|Page

Conf.dr.ing. Ovidiu-Aurelian Detean Programare si limbaje II

Curs 1. Introducere in Matlab

ans =
2.2251e-308

echivalent cu 2^(-1022).
- determinarea limitelor maxime pentru clasele n virgul flotant:
>> realmax('single')
ans =
3.4028e+038

echivalent cu 2^(127)
>> realmax('double')
ans =
1.7977e+308

echivalent cu 2^(1023).

7|Page

S-ar putea să vă placă și