Documente Academic
Documente Profesional
Documente Cultură
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)
1
suport de laborator
Informatic Aplicat 2
Programare n MATLAB pentru ingineri exerciii, aplicaii i teme
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.
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
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.
3
suport de laborator
Informatic Aplicat 2
Programare n MATLAB pentru ingineri exerciii, aplicaii i teme
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
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