Sunteți pe pagina 1din 7

Informatic Aplicat 2

Programare n MATLAB pentru ingineri exerciii, aplicaii i teme

2. Bazele MATLAB
2.1 Variabile i serii
Unitatea fundamental de lucru n orice program MATLAB este seria. O serie este un grup de
valori organizate pe rnduri i coloane, avnd o singur denumire. Valorile individuale dintr-o
serie pot fi accesate prin introducerea denumirii seriei, urmat, n paranteze, de indicatorii
randului i a coloanei pe care se afl respectiva valoare (ex: a(3,2)). Chiar i scalarii sunt
considerai serii n MATLAB. Acetia sunt serii cu un singur rnd i o singur coloan.
Seriile sunt considerate fie vectori, fie matrice.
Mrimea unei serii este determinat de numrul de rnduri i coloane ale acesteia, cu
meniunea c numrul de rnduri este specificat prima dat.
Serie Mrime
1 2
= [3 4] Matrice 3 x 2 i conine 6 elemente
5 6
= [1 2 3 4] Serie 1 x 4, conine 4 elemente i se numete vector rnd
1
= [2] Serie 3 x 1, conine 3 elemente i se numete vector coloan
3

Elementele individuale dintr-o serie sunt accesate prin utilizarea denumirii seriei urmate de
poziia elementului respectiv. Dac o serie este un vector coloan, este necesar doar un indice.
Drept exemplu, n seriile precedente a(2, 1) este 3 i n cazul c(2) este 2.
O variabil MATLAB este o poriune de memorie ce conine o serie i este recunoscut doar
dup o denumire inregistrat de utilizator. Coninutul unei serii poate fi utilizat sau modificat
n orice moment prin includerea denumirii sale ntr-o comanda MATLAB corespunztoare.
Capcane n programare
Asigurai-v c variabilele sunt denumite n mod unic pentru primele 63 de caractere, altfel, MATLAB nu va putea face diferena ntre ele.
Recomandri n programare
ntotdeauna atribuii variabilelor, denumiri descriptive i uor de reinut. Drept exemplu, ntr-o problem de rezistena materialelor,
valoarea tensiunilor la care materialul se rupere se numete limita_de_rupere. Astfel, programele vor deveni mult mai clare i
mai uor de neles.
Recomandri n programare
Este important realizarea unei informri la nceputul oricrui program. Astfel, va fi mult mai uor de neles mai trziu.
Recomandri n programare
O variabil se scrie la fel de fiecare dat cnd este utilizat. Este o practic bun utilizarea doar a literelor mici n denumirile variabilelor.

Variabilele cel mai des ntlnite sunt de tip double i char. Variabilele de tip double sunt
scalari sau serii de numere utiliznd formatul pe 64 bii. Aceste variabile pot conine valori
reale, imaginare sau complexe.
EX: Urmtoarea expresie atribuie valoarea real de 13.75 unei variabile de tip double
denumite variabila:
>> variabila = 13.75
variabila
13.75

1
suport de laborator
Informatic Aplicat 2
Programare n MATLAB pentru ingineri exerciii, aplicaii i teme

O variabile de tip char este format din scalari sau serii cu valori de 16 bii, fiecare
reprezentnd un singur caracter. Seriile de acest tip sunt utilizate pentru a reine irurile de
caractere.
EX: Urmtoarea expresie creaz o variabil de tip char, a crei nume este comentariu i
reine un ir specificat. Dup executarea expresiei, comentariu devine o serie de caractere
de 1 x 33:
>> comentariu = 'Aceasta este o serie de caractere';

2.2 Crearea i iniializarea variabilelor n MATLAB


Variabilele din MATLAB sunt create automat n momentul iniioalizrii acestora. Sunt trei
variante uzuale de a iniioaliza o variabila n MATLAB:
Atribuirea informaiei ntr-o variabil printr-o expresie de atribuire;
Introducerea informaiei ntr-o variabil prin tastare direct;
Citirea informaiei dintr-un fiier.

Iniializarea variabilelor cu expresii de atribuire


Cea mai simpl variant de iniioalizare a unei variabile este atribuirea uneia sau mai multor
valori ntr-o expresie de atribuire. O astfel de expresie are, n general, forma urmtoare:
>> var = expresie;
unde var este denumirea variabilei i expresie este o constant scalar, o serie sau o
combinaie de constante, alte variabile i operatori matematici.
Simbolul ; introdus la sfritul expresiei de atribuire este opional. Dac acesta lipsete
valoarea atribuit variabilei va fi afiat n fereastra Command. Dac ; este prezent, pe
fereastra Command nu se va afia nimic, chiar dac respectiva comand a fost executat.
>> var = 40i;
>> var2 = var/5;
>> serie = [1 2 3 4];
>> x = 1; y = 2;
>> t = [1 2 3; 4 5 6]

Valorile individuale de pe un rnd sunt separate de un spaiu liber sau de ,. Rndurile sunt
separate de ; sau linii noi. Pentru a iniializa o variabil se poate utiliza una dintre
urmtoarele variante:
Aceast expresie genereaz o serie 1 x 1 (mrime scalar), coninnd valoarea
[3.4]
3.4, iar parantezele nu sunt necesate n acest caz.
[1.0 2.0 3.0] Aceast expresie genereaz o serie 1 x 3, coninnd un vector rnd [1 2 3].
1
1.0; 2.0; 3.0] Aceast expresie genereaz o serie 3 x 1, coninnd un vector coloan [2]
3
1 2 3]
1, 2, 3; 4, 5, 6] Aceast expresie genereaz o serie 2 x 3, coninnd o matrice [
4 5 6
1 2 3],
[1, 2, 3 Aceast expresie genereaz o serie 2 x 3, coninnd o matrice [ iar
4, 5, 6] 4 5 6
sfritul primei liniei determin terminarea primului rnd.

2
suport de laborator
Informatic Aplicat 2
Programare n MATLAB pentru ingineri exerciii, aplicaii i teme

Aceast expresie genereaz o serie vid, care nu conine niciun rnd i nicio
[ ] coloan. A se reine faptul c nu este acelai lucru cu o serie care conine
zerouri.

Capcane n programare
Numrul de elemente din fiecare rnd al unei serii trebuie s fie identic, la fel ca i numrul de elemente din fiecare coloan. ncercarea de
a defini o serie cu un numr diferit de elemente pe rnduri sau pe coloane va conduce la emiterea unui mesaj de eroare la executarea
expresiei.

>> a = [0 1+7]
>> b = [a(2) 7 a]

>> d(4) = 4;

Recomandri n programare
Utilizarea simbolului ; la sfritul expresiilor MATLAB duce la impiedicarea afirii valorilor rezultate n fereastra Command n urma
executrii. Acest lucru mrete considerabil viteza de executare a programelor.
Recomandri n programare
Dac se impune verificarea unei expresii n timpul corectrii unui script, se poate nltura simbolul ; doar pentru a putea fi afiate n
fereastra Command.

Iniializarea cu expresii prescurtate


EX: Expresia 1:2:20 este o prescurtare pentru un vector rnd 1 x 10. Urmtoarea valoare n
serie ar trebui s fie 21, dar este mai mare dect 20, aa c seria se termin la 19.
>> x = 1 : 2 : 20
x =
1 3 5 7 9 11 13 15 17 19

Expresiile prescurtate pot fi combinate utiliznd simbolul , pentru a iniializa vectori


coloan sau matrici mai complexe. Acest simbol, schimb rndul cu coloana n orice serie n
care este aplicat.
>> f = [1 : 4];

>> g = 1:4;
>> h = [g g]

Iniializarea cu funcii predefinite


EX: funcii zeros
>> a = zeros(2);
>> b = zeros(2 , 3);
>> c = [1 2 ; 3 4];
>> d = zeros(size(c));

Tabel 2.1 Funcii MATLAB utilizate n iniializarea variabilelor


zeros(n) Genereaz o matrice nul n x n
zeros(m,n) Genereaz o matrice nul m x n
zeros(size(arr)) Genereaz o matrice nul cu aceeai mrime ca argumentul arr
ones(n) Genereaz o matrice unitar n x n
ones(m,n) Genereaz o matrice unitar m x n
ones(size(arr)) Genereaz o matrice unitar cu aceeai mrime ca argumentul arr
eye(n) Genereaz o matrice identic n x n

3
suport de laborator
Informatic Aplicat 2
Programare n MATLAB pentru ingineri exerciii, aplicaii i teme

eye(m,n) Genereaz o matrice identic m x n


length(arr) Arat lungimea unui vercor sau cea mai lung serie 2D
Arat dou valori care specific numrul de rnduri i numrul de coloane a
size(arr)
matricei arr

Iniializarea variabilelor prin introducere direct


EX: se consider urmtoarele expresii:
>> valorile_mele = input('Sa se introduca o valoare de intrare: ');

>> actiune_1 = input ('Introduceti valorile de intrare: ');


Introduceti valorile de intrare: 7.89

>> actiune_2 = input ('Introduceti valorile de intrare: ' , 's');


Introduceti valorile de intrare: 1.23

Dac funcia input include caracterul s ca un al doilea argument, informaia este afiat ca
un ir de caractere. Astfel actiune_1 va reine valoarea 7.89, n timp ce expresia
actiune_2 va reine irul de caractere '1.23' n variabila actiune_2.

2.3 Serii multidimensonale


EX: Urmtoarele expresii genereaz o serie tridimensional de tipul 2 x 3 x 2 denumit
serie_3d.
>> serie_3d(:,:,1) = [1 2 3;4 5 6];
>> serie_3d(:,:,2) = [7 8 9;10 11 12];
>> serie_3d(:,:,3) = [13 14 15;16 17 18];
>> whos serie_3d

Accesarea seriilor multidimensionale cu un singur indice


EX: se consider declararea unei serii denumite mono_dim ce conine 3 x 4 elemente, dup
cum urmeaz:
>> mono_dim = [1 2 3 4;5 6 7 8;9 10 11 12];
>> mono_dim(6)
>> mono_dim(3,2)

Recomandri n programare
Utilizai de fiecare dat numrul necesar de indici pentru a accesa o serie multidimensional.

2.4 Subserii
EX: se presupune c seria arr_1 i arr_2 sunt definite dup cum urmeaz:
>> arr_1 = [1.1 -2.2 3.3 -4.4 5.5];
>> arr_1(3)
>> arr_1([1 4])
>> arr_1(1:2:5)

>> arr_2=[1 2 3;4 5 6;7 8 9]


>> arr_2(1,:)
>> arr_2(:,1:2:3)

4
suport de laborator
Informatic Aplicat 2
Programare n MATLAB pentru ingineri exerciii, aplicaii i teme

Funcia end
EX: Pentru seria denumit arr_3, care este raspunsul pentru cele doua expresii :
>> arr_3 = [1 2 3 4 5 6 7 8 9];
>> arr_3(5:end)
>> arr_3(end)

>> arr_4 = [1 2 3 4;5 6 7 8;9 10 11 12]


>> arr_4(2:end,2:end)

Utilizarea subseriilor n stnga expresiilor de atribuire


EX: O serie denumit arr_5 cu un numr de 3 x 4 elemente. n cadrul acestei serii se face
actualizarea unor valori dup cum urmeaz:
>> arr_5 = [2 4 6 8;1 3 5 7; 10 12 14 16]
>> arr_5(1:2,[1 4]) = [22 23;24 25]

Capcane n programare
Pentru expresii de atribuire care implic subserii este obligatoriu ca cele dou pari ale semnului = s fie identice. n caz contrar, MATLAB
va afia o eroare.

EX: seria denumit arr_6 are un numr de 3 x 4 elemente i este definit astfel:
>> arr_6 = [2 4 6 8;1 3 5 7; 10 12 14 16]
>> arr_6 = [55 56;57 58]

Recomandri n programare
Trebuie s se fac bine diferena ntre atribuirea de valori unei serii i atribuirea de valori unei subserii. MATLAB se comport total diferit
n aceste dou cazuri.

Atribuirea valorilor scalare unei subserii


EX: seria denumit arr_7 cu 3 x 4 elemente este definit dup cum urmeaz:
>> arr_7 = [1 2 3 4;5 6 7 8;9 10 11 12]
>> arr_7(1:2,1:2) = 2.25

2.5 Valori speciale


Tabel 2.2 Valori speciale predefinite n MATLAB
Funcie Utilizare
pi Reprezint constanta cu 15 zecimale exacte.
i, j Reprezint valoarea imaginar a lui i (1).
Acest simbol reprezint infinitul programului. Este, n general, generat ca rezultat pentru
Inf mprirea la cu 0.
Acest simbol nlocuiete expresia not a number. Este generat ca rezultat al unei operaii
NaN matematice neidentificate (ex: mprirea lui 0 la 0).
Aceast variabil special conine data i ora curent n formatul unei serii cu 1 x 6
clock elemente n care sunt specificate anul, luna, ora, minutele i secundele.
date Conine data curent n formatul unui ir de caractere (ex: 05-feb-2015)
Reprezint prescurtarea variabilei epsilon. Este cea mai mic diferen dintre dou
eps numere care pot fi reprezentate de un calculator.

5
suport de laborator
Informatic Aplicat 2
Programare n MATLAB pentru ingineri exerciii, aplicaii i teme

Este o variabil special utilizat pentru reinerea rezultatului unei expresii dac acel
ans rezultat nu a fost explicitat anterior sau atribuit altor variabile.

EX: Se calculeaz circumferina unui cerc cu raza de 13 mm:


>> cerc = 2 * pi *13;

Capcane n programare
Niciodat nu trebuie schimbat o variabil predefinit n MATLAB. Astfel se vor introduce abateri subtile greu de gsit.

Exerciii propuse
1. Care este diferena dintre o serie, o matrice i un vector?
2. Rspundei la ntrebrile urmtoare avnd la dispoziie seria:
1.1 3.2 3.4 0.6
= [0.6 1.1 0.6 3.1]
1.3 0.6 5.5 0
a. Care este mrimea lui c?
b. Care este valoarea lui c(2,3)?
c. Ce indici de poziie prezinta scalarul 0.6 sin seria de mai sus?
3. Ce mrime au urmtoarele serii:
a. u=[10 20*i 10+20];
b. v=[-1;20;3];
c. w=[1 0 -9; 2 -2 0;1 2 3];
d. x=[u v];
e. y(3,3)=-7;
f. z=[zeros(4,1) ones(4,1) zeros(1,4)];
g. v=[10 20*i 10+20];
4. Care este valoarea lui w(2,1) din seria cu acelai nume de mai sus?
5. Care aste valoarea lui x(2,2) din seria cu acelai nume de mai sus?
6. Care este valoarea lui y(1,2) din seria cu acelai nume de mai sus?
7. Care este valoarea lui v(3) dup executarea expresiei (g)?
8. Presupunnd seria de la punctul 2, determinai coninutul urmtoarelor subserii:
a. c(2,:)
b. c(:,end)
c. c(1:2,2:end)
d. c(6)
e. c(4:end)
f. c(1:2,2:4)
g. c([1 3],2)
h. c([2 2],[3 3])
9. Determinai coninutul seriei a, dup executarea urmtoarelor expresii:
1 2 3
= [4 5 6]
7 8 9

6
suport de laborator
Informatic Aplicat 2
Programare n MATLAB pentru ingineri exerciii, aplicaii i teme

a. a([3 1],:)=a([1 3],:)


b. a([1 3],:)=a([2 2],:)
c. a=a([2 2],:)
10. Determinai coninutul seriilor, dup executarea expresiilor urmtoare:
a. a=eye(3,3);
b=[1 2 3];
a(2,:)=b
b. a=eye(3,3);
b=[4 5 6];
a(:,3)=b
c. a=eye(3,3);
b=[7 8 9];
a(3,:)=b([3 1 2]);

7
suport de laborator

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