Sunteți pe pagina 1din 5

Informatic Aplicat 2

Programare n MATLAB pentru ingineri exerciii, aplicaii i teme

2.6 Afiarea datelor de ieire


n MATLAB sunt cteva modaliti de afiare a datelor de ieire, cea mai simpl variant fiind
omiterea simbolului ; de la sfritul expresiilor. Prin aceast omitere, rezultatul este afiat
n fereastra Command. n continuare vor fi prezentate cteva modaliti diferite de afiare a
datelor de rspuns.

Schimbarea formatului de afiare


Tabel 2.3 Formatul de afiare
Comanda format Utilizare Exemplu *
format short 4 zecimale exacte (format iniial) 12.3457
format long 14 zecimale exacte 12.345678901234567
format short e 5 cifre plus exponent 1.2346e+001
format short g 5 cifre cu sau fr exponent 12.346
format long e 15 cifre plus exponent 12.345678901234567e+001
format long g 15 cifre cu sau fr exponent 12.3456789012346
format bank Format monetar cu 2 zecimale exacte 12.35
format hex Afiaj hexazecimal de bii 4028b0fcd32f707a
format rat Raport aproximativ de nr. ntregi 1000/81
format compact Eliminarea spaiilor suplimentare
format loose Adaug spaii suplimentare
format + Sunt afite doar semne +
* pentru toate cazurile prezentate, valoarea aleas ca exemplu este 12.345678901234567

Funcia disp
O alt variant de afiare a datelor este prin utilizarea funciei disp. Aceast funcie accept
ca argument i o serie pe care o afieaz n fereastra Command. Dac seria este de tip char,
se afieaz irul de caractere din aceast serie.
De asemenea, aceast funcie este adesea combinat cu funcia num2str (schimbarea unui
numr ntr-un ir) sau cu funcia int2str (schimbun numr ntreg ntr-un ir), pentru a crea
mesaje ce pot fi afiate pe fereastra Command.
>> mesaj = ['valoarea constantei pi = ' num2str(pi) ] ;
>> disp(mesaj);

Funcia fprintf
EX:
>> fprintf ('valoarea constantei pi este %f\n',pi)
>> fprintf('valoarea constantei pi este %6.2f\n',pi)

%f - caracter de conversie - un element din expresie ar trebui afiat n format numeric.


\n - caracter de salt - urmtorul text va fi afiat pe urmtoarea linie.
%6.2f - primul element din informaia numeric este afiat n format floating-point, ntr-un
spaiu de ase caractere, inclusiv cele dou zecimale.
Tabel 2.4 Caractere speciale comune n cazul irurilor tip fprintf
Caracterul de conversie Utilizare

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

%d Afieaz o valoare ca numr ntreg


%e Afieaz o valoare n format exponenial
Afieaz o valoare n format floating-point (virgul mobil - cea mai des
%f ntlnit modalitate de reprezentare a numerelor)
Afieaz o valoare fie n format floating-point, fie exponenial n funcie de
%g care este mai scurt
\n Trecerea la urmtoarea linie de intrare

Capcane n programare
Funcia fprintf afieazdoar partea real a unui numr complex, fapt ce poate duce la rezultate eronate cnd se lucreaz cu valori
complexe.

2.7 Fiiere de date


n MATLAB sunt multe modaliti de a ncrca i de a salva fiiere de date, ns n aceast
seciune vor fi prezentate doar comenzile load i save, acestea fiind i cele mai simple de
altfel.
EX:
>> x=[1.23 3.14 6.28; -5.1 7 0];
>> save x.dat
>> save x.ascii

Recomandri n programare
Dac datele trebuie citite i de alte programe, informaiile MATLAB se pot salva n format ASCII. Dac datele vor fi utilizate doar n MATLAB,
atunci fiierele se vor salva n format MAT.
Recomandri n programare
Fiierele ASCII se salveaz utiliznd extensia .dat, spre deosebire de fiierele-MAT, care au extensia .mat.

2.8 Operaii cu serii i scalari


Operaii cu scalari
EX: expresia 2^((8+4.5)/5.2) este evaluat astfel:
>> 2^((8+4.5)/5.2) = 2^(12.5/5.2)
= 2^2.4039
= 5.2923

Tabel 2.5 Operaii aritmetice ntre doi scalari


Operaie Forma algebric Formatul MATLAB
Adunare a+b a + b
Scdere ab a b
nmulire axc a * b

mprire
a / b
Exponenial (ridicarea la putere) ab a^b

Operaii cu serii i matrice


Operaiile cu serii sunt realizate ntre serii pe principiul element cu element.
2 4 1 3 1 7
EX: dac = [ ] i = [ ], atunci + = [ ].
1 3 2 1 1 4
>> a=[2 4;1 3]; b=[-1 3;-2 1]; c = a + b

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

8 12 12 16
EX: dac = [ ], atunci + 4 = [ ].
3 5 7 9
>> a=[8 12;3 5]; b = a + 4

n caz contrar, operaiile cu matrice se realizeaz pe baza regulilor algebrei liniare. Drept
exemplu, n algebra liniar, produsul c = a b este definit de urmtoarea ecuaie:

(, ) = (, )(, )
=1

8 12 1 3 32 36
EX: dac = [ ] i = [ ], atunci = [ ].
3 5 2 1 13 14
Tabel 2.6 Operaii cu serii i matrice
Operaie Formatul MATLAB Comentarii
Seriilor a + b Adunarea seriilor i matricelor este identic.
Adunarea
Matricelor a b Scderea seriilor i matricelor este identic.
nmulirea seriilor se realizeaz element cu
element. Ambele serii trebuie s aib aceleai
Seriilor a .* b dimensiuni sau unul dintre termeni trebuie s fie
nmulirea un scalar.
La nmulirea matricelor, nr. de coloane a
Matricilor a * b matricei a trebuie s fie egal cu nr. de rnduri a
matricei b.
mprirea seriilor se realizeaz element cu
element, adic a(i,j)/b(i,j). Ambele
n dreapta seriilor a ./ b
serii trebuie s aib aceleai dimensiuni sau unul
dintre termeni trebuie s fie un scalar.
mprirea seriilor se realizeaz element cu
element, dar seria b este la numrtor, adic
n stnga seriilor a .\ b b(i,j)/a(i,j). Ambele serii trebuie s
mprirea aib aceleai dimensiuni sau unul dintre termeni
trebuie s fie un scalar.
mprirea matricelor se definete ca fiind
n dreapta matricelor a / b a*inv(b), unde inv(b) este inversa
matricei b.
mprirea matricelor se definete ca fiind
n stnga matricelor a \ b inv(a)*b, unde inv(a) este inversa
matricei a.
Ridicarea la putere a seriei a prin seria b:
Ridicarea la purere a seriilor a .^ b a(i,j)^b(i,j). Ambele serii trebuie s
aib aceleai dimensiuni sau unul dintre termeni
trebuie s fie un scalar.

Capcane n programare
Atenie, n scrierea programelor MATLAB, la deosebirea dintre operaiile cu serii i operaiile cu matrice. Rezultatele sunt foarte diferite.

EX: Dac exist sistemul de ecuaii:


11 1 + 12 2 + 13 3 = 1
21 1 + 22 2 + 23 3 = 2 (2.1)
31 1 + 32 2 + 33 3 = 3

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

Atunci : a*x = b, unde:


11 12 13 1 1

= [ 21 22 23 ] , = [2 ] i = [2 ].
31 32 33 3 3

Rezultatul poate fi scris astfel: x = a\b.


Recomandri n programare
Este bine ca sistemele de ecuaii s fie rezolvate prin utilizarea mpririi la stnga \.

2.9 Ordinea operaiilor


Tabel 2.7 Ierarhia operaiilor aritmetice
Importan Operaie
1 Coninutul tuturor parantezelor este evaluat ncepnd din interior ctre exterior, n ordinea
apariiei acestora.
2 Toate ridicrile la putere, din stnga n dreapta.
3 Toate nmulirile i mpririle sunt evaluate n ordinea apariiei, de la stnga la dreapta.
4 Toate adunrile i scderile sunt evaluate n ordinea apariiei, de la stnga la dreapta.

Recomandri n programare
Utilizai paranteze n mod corespunztor pentru a face ecuaiile mai clare i uor de neles.

Exerciii propuse
1. Seriile a, b, c i d sunt definte dup cum urmeaz:
1 0 1 2 3
=[ ], = [ ], = [ ], = 5
2 1 0 1 2
Care este rspunsul pentru fiecare dintre expresiile de mai jos?
a. a + b
b. a .* b
c. a * b
d. a *c
e. a + c
f. a + d
g. a .* d
h. a * d

2. Variabilele a, b, c i d sunt iniializate dup cum urmeaz:


>> a = 3; b = 2; c = 5; d = 4;
S se evalueze urmtoarele expresii de atribuire:
a. exp_1 = a*b+c*d
b. exp_2 = a*(b+c)*d
c. exp_3 = (a*b)+(c*d)
d. exp_4 = a^b^d

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

e. exp_5 = a^(b^d)
3. Ce comand utilizai n MATLAB pentru a afia valori reale n format exponenial cu
15 zecimale semnificative?
4. Ce trebuie s se ntample i ce rezultat apare la executarea urmtoarelor expresii:
a. raza = input('Introduceti raza cercului: ');
arie_c = pi*(raza^2);
solutie = ['Aria cercului este ' num2str(arie_c)];
disp(solutie)
b. val = int2str(pi);
disp([valoarea acestei variabile este val !]);
5. Care este rolul urmtoarelor expresii? Care este rezultatul executrii acestora?
val_x=123.4567e2
a. fprintf(valoare x %e\n,val_x);
b. fprintf(valoare x %f\n,val_x);
c. fprintf(valoare x %g\n,val_x);
d. fprintf(valoare x %12.4f\n,val_x);
6. Seriile a, b, c i d sunt definte dup cum urmeaz:
2 1 0 1 1
=[ ], = [ ] , = [ ] , = 3
1 2 3 1 2
Care este rspunsul pentru fiecare dintre expresiile de mai jos?
a. a.*c;
b. a*[c c];
c. a.*[c c];
d. a+b*c;
e. a+b.*c;
7. Aflai valoarea lui x din ecuaia ax=b, dac:
1 2 1 1
=[ 2 3 2] , = [1].
1 0 1 0

5
suport de laborator

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