Sunteți pe pagina 1din 10

Copyright  2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici

Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,


Universitatea POLITEHNICA din Bucuresti

LABORATOR 1:
GENERALITATI. COMENZI UTILE & CUVINTE REZERVATE. SCALARI & CONSTANTE.
VECTORI, MATRICE & SIRURI DE CARACTERE. EXTRAGEREA, SALVAREA & FORMATUL
DATELOR. FUNCTII SPECIFICE SIRURILOR DE VALORI

1.1. GENERALITATI

MATLAB® este un limbaj de programare de nivel inalt si un mediu interactiv care permite efectuarea
calculelor numerice stiintifice si ingineresti mult mai rapid decat utilizand limbajele de programare clasice ca C,
C++ si Fortran. MATLAB este bazat pe calculul matriceal, iar denumirea sa este abrevierea cuvintelor MATrix
LABoratory (Laborator Matriceal). Este comercializat de catre compania MathWorks; a fost conceput in 1978.
GNU Octave http://www.gnu.org/software/octave/ este o clona de tip free software a MATLAB,
distribuita de catre Free Software Foundation http://www.gnu.org/ in termenii GNU General Public License
http://www.gnu.org/copyleft/gpl.html
GNU Octave a fost conceput in 1988 de catre James B. Rawlings de la University of Wisconsin-Madison
si John G. Ekerdt de la University of Texas. Din 1992 a fost dezvoltat de catre John W. Eaton, prin contributia
mai multor informaticieni si matematicieni http://www.gnu.org/software/octave/acknowledgments.html
Exista un manual in format HTML (575 de pagini) pentru utilizarea GNU Octave, elaborat de catre John W.
Eaton (Copyright © 1996, ..., 2007): http://www.gnu.org/software/octave/doc/interpreter/
Prima versiune GNU Octave (alpha) a fost lansata la 4 ianuarie 1993. Pana in prezent, GNU Octave a
suferit revizii importante, fiind competitiv in raport cu produsele similare comerciale (de exemplu, MATLAB).
In momentul de fata exista distributii GNU Octave pentru principalele sisteme de operare (Unix, Linux,
Windows si altele), obtinute direct de pe site-ul http://www.gnu.org/software/octave/download.html
Ca structura, GNU Octave este conceput pe doua nivele: un pachet de programe executabile de tip
kernel, acompaniat de o colectie de fisiere functie de tip text cu extensia .m, grupate intr-un sistem de
directoare speciaziate pe domenii de interes stiintific si ingineresc. Spre exemplu, poate contine directoarele:
audio, comm, elfun, finance, general, image, integration, linear-algebra, miscellaneous, ode, optim, path, plot,
polynomial, set, signal, sparse, specfun, special-matrix, splines, statistics, strings, struct, testfun, time etc.
Fisierele functii sau fisierele program in GNU Octave sunt fisiere de tip text (ASCII), cu extensia .m (ca
in MATLAB).
In GNU Octave, respectiv in MATLAB nu sunt necesare declaratii despre tipul si dimensiunea
variabilelor; la introducerea datelor, GNU Octave (respectiv MATLAB) recunoaste tipul de variabila si aloca
automat memorie. Literele mici si majusculele (exemplu, a si A) au implicit, semnificatii diferite. Fereastra de
comenzi in GNU Octave este de tipul celei din Figura 1.1.
GNU Octave, respectiv MATLAB lucreaza in domeniul real pe dreapta incheiata [-inf, +inf], unde
1/0 = +inf, sau in domeniul complex, unde i = sqrt(-1) sau j = sqrt(-1).

Fig. 1.1 - Fereastra de comenzi GNU Octave, versiunea 3.2.3 (sistem de operare Windows Vista)

Pag. 1 din 10
Copyright  2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti

1.2. COMENZI UTILE & CUVINTE REZERVATE

Comanda Descriere

Intrarea in mediul GNU Octave: dublu click pe icon Octave (de pe Desktop)

exit Iesirea din mediul GNU Octave

octave:1> Prompter-ul din GNU Octave. In functie de versiune si de sistemul de operare, exista
diferite prompter-e, cum ar fi octave:1> (unde cifra indica numarul liniei de comenzi),
sau octave-3.2.3.exe:20:C:\Octave\3.2.3_gcc-4.4.0\bin>, sau >> (care semana cu
prompter-ul din MATLAB)

 Fiecare comanda sau linie de comanda se introduce pentru executie cu tasta <Enter>
<Enter> Daca o comanda este mai lunga de o linie, pentru a o continua pe linia urmatoare, se
poate scrie la sfarsitul liniei o secventa de 3 puncte … sau caracterul back slash \

% In GNU Octave o linie care incepe cu simbolul % sau # este neexecutabila (aceste
# simboluri pot fi folosite pentru comentarii si pe o linie executabila, dar doar dupa
comanda/comenzile executabile)

help help help help returneaza indicatii despre folosirea help;


help nume help nume returneaza indicatii despre nume, unde nume poate fi o comanda, o functie,
un caracter special, un cuvant rezervat etc.

demo('demo') Exemplu demonstrativ in GNU Octave.


demo('demo') deseneaza graficul functiei y = sin(t) pe intervalul [0, 2]

history Octave are istoric de comenzi (pentru a aduce in linia de comanda curenta, anumite
history 20 comenzi deja folosite in sesiunea de lucru, se foloseste cursorul  de pe tastatura).
history afiseaza comenzi deja folosite in sesiunea de lucru;
history 20 afiseaza ultimele 20 de linii de comenzi

who Listeaza variabilele curente din memorie.


whos Listeaza variabilele curente, dimensiunea lor, precum si tipul acestora

clear nume Sterge din memoria sesiunii de lucru variabile, functii etc.

disp nume Afiseaza pe ecran mesajul/rezultatele din nume (nume poate fi o functie GNU Octave
type nume sau un script GNU Octave)

echo on Tot ce urmeaza dupa comanda echo on, este afisat pe ecran.
echo off echo off inhiba echo on

diary nume_fisier Salveaza sesiunea de lucru (mai putin partea grafica) in fisierul text nume_fisier pana la
diary off comanda diary off. Indica locul in care se termina salvarea sesiunii de lucru

clock Returneaza un vector continand informatiile: anul curent, luna (112), ziua (131), ora
(023), minutul (059), secunda (urmata de zecimale pentru subdiviziunile secundei)

date Returneaza data (ziua, luna, anul)

tic, program, toc Calculeaza timpul scurs in executarea program

pause(secunde) Suspenda executia unui program timp de numarul de secunde specificat

Pag. 2 din 10
Copyright  2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti

sleep(secunde)

rename(old, new) Redenumeste fisierul old cu numele new

mkdir Creaza un director


rmdir Sterge un director

cd Schimba directorul

ls -l Lista fisierelor din directorul GNU OCTAVE octave_files

pwd Listeaza direcorul curent

computer Returneaza tipul de computer. Exemplu (sub Windows Vista): i686-pc-mingw32

Cateva cuvinte break, continue, else, elseif, end, for, endfor, function, endfunction, global, gplot, if,
rezervate: endif, plot, return, while, endwhile, ...

1.3. SCALARI & CONSTANTE

GNU Octave si MATLAB interpreteaza matricele, vectorii si scalarii in sens matriceal. O variabila
scalara este interpretata ca fiind o matrice de dimensiune 11. Comanda size returneaza dimensiunea matricei
(numarul de linii  numarul de coloane).
Exemple de definire pentru scalari: a = 15.73e-12 (inseamna a  15,73 1012 ), b = 3^2 (inseamna b  32 ),
r = sqrt(b) (inseamna b ), s = pi*r^2 (inseamna  r2 ), z = -7+3*i (inseamna z  7  3i ).
In GNU Octave si in MATLAB sunt definite multe constante utile de tip built-in. In tabelul de mai jos
sunt prezentate cateva dintre constantele cele mai importante, urmate de variabile speciale, cu nume
predefinite.

Constanta Descriere

pi  = 3.14159265358979

i sau j Desemneaza coeficientul partii imaginare a unui numar complex: i = sqrt(-1) sau j = sqrt(-1)

e sau exp(1) e = 2.71828182845905 (baza logaritmului natural)

Inf sau inf = infinit (Exemple: 1/0 = +inf sau -1/0 = -inf)

NaN sau nan = nedeterminare (Not a Number).


Exemple de neterminari in GNU Octave: 0/0, inf/inf, 0*inf returneaza NaN

realmin = 2.2251e-308 (adica 2,2251 10308 ): cel mai mic numar pozitiv utilizabil in calcule (in virgula
mobila si dubla precizie)

realmax = 1.7977e+308 (adica 1,7977 10308 ): cel mai mare numar pozitiv utilizabil in calcule (in
virgula mobila si dubla precizie)

eps Exprima precizia masinii; eps = 2.2204e-16 (adica 2,2204 1016 ) in dubla precizie. Se
recomanda utilizarea sa atunci cand in timpul executarii unor calcule se doreste evitarea unei
impartiri cu zero. Exemplu: cand x  0, in loc de 1/x se va scrie 1/(x+eps)

Pag. 3 din 10
Copyright  2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti

Variabila Descriere
speciala

ans Nume de variabila atribuita unui rezultat, daca acesta nu a fost initial atribuit unei alte
variabile. Exemplu: 2+3, returneaza ans = 5

nargin Numarul de argumente de intrare ale unei functii

nargout Numarul de argumente de iesire ale unei functii

1.4. VECTORI, MATRICE & SIRURI DE CARACTERE

 Introducerea vectorilor:
Sintaxa Descriere si exemple

vector_linie = [b1 b2 b3 ...] Creaza un vector linie care contine valorile sau variabilele b1, b2, b3, ...
sau (sau combinatii intre valori si variabile). Valorile/variabilele sunt
vector_linie = [b1, b2, b3, ...] delimitate intre ele prin spatiu, <Tab> sau , (virgula).
Exemplu:
 Fie v1 = [1, 1, 5+i] si v2 = [-7 sqrt(9)]
v3 = [v2 v1 87] returneaza vectorul linie v3 = -7 3 1 1 5+i 87

vector_coloana = [b1; b2; b3;...] Creaza un vector coloana care contine valorile sau variabilele b1, b2, b3,
sau ... (sau combinatii intre valori si variabile). Valorile/variabilele sunt
vector_coloana = [b1 b2 b3 ...]' delimitate intre ele prin ; (punct-si-virgula), prin apasarea tastei <Enter>
sau prin transpunere dintr-un vector linie folosind caracterul ' (apostrof).
Exemple:
 v4 = [-3; 5; 2*e] si v5 = [1 5 9]' sunt vectori coloana;
3
 v6 = [log10(1000); log(e)] returneaza vectorul coloana v6 =
1

v' Reprezinta transpunerea unui vector. Daca v este vector linie, atunci v'
sau este un vector coloana si invers. Daca vectorul linie contine numere
transpose(v) complexe, prin transpunerea cu v' vor fi afisate conjugatele acestora;
transpose(v) este echivalent cu v' cu deosebirea ca la transpunere nu
conjuga elementele complexe
Exemple:
1  0i
 Daca v7 = [1 2+i] atunci v8 = v7' returneaza v8 =
2  1i
1  0i
 v9 = transpose(v7) returneaza v9 =
2  1i

vector = val_in:pas:val_fin Genereaza o multime/serie numerica, intre valoarea initiala specificata


sau val_in si valoarea finala val_fin, cu pasul specificat: pas. In cazul in care
vector = val_in:val_fin nu se specifica pasul, atunci implicit, pas = 1.
Exemple:
 v10 = 1:2:10 returneaza v10 = 1 3 5 7 9
 v11 = 1:10 returneaza v11 = 1 2 3 4 5 6 7 8 9 10

v = linspace(val_in, val_fin, n) Genereaza o multime/serie numerica liniara de tip vector linie, intre
sau valoarea initiala specificata val_in si valoarea finala val_fin, cu (n-1)
v = linspace(val_in, val_fin) subintervale egale, deci vectorul va avea n termeni. Daca nu se specifica
Pag. 4 din 10
Copyright  2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti

n, atunci vectorul e generat cu 100 de termeni (99 de subintervale egale).


Daca val_in > val_fin, termenii vor fi generati in ordine descrescatoare.
Exemple:
 v12 = linspace(0,10,5) returneaza 5 valori v12 = 0 2.5 5 7.5 10
 v13 = linspace(12,2,5) returneaza v13 = 12 9.5 7 4.5 2

v = logspace(inferior,superior,n) Genereaza o multime/serie numerica logaritmica de tip vector linie, cu n


termeni, intre 10^inferior (adica 10inferior) si 10^superior (adica 10superior).
Daca nu se specifica n, atunci vectorul este generat cu 50 de termeni
Exemplu:
 v14 = logspace(0,3,4) returneaza v14 = 1 10 100 1000 (unde valoarea
initiala este 100 = 1 si cea finala este 103 = 1000).

 Introducerea matricelor:
Sintaxa Descriere si exemple

matrice = [a11 a12 ... a1m; a21 Defineste o matrice cu n linii  m coloane care contine elementele aij cu
a22 ... a2m; ...; an1 an2 ... anm] i = 1, 2, …, n si j = 1, 2, …, m. Pe o linie, elementele sunt despartite prin
spatiu, <Tab> sau , (virgula), iar liniile sunt delimitate intre ele prin ;
(punct-si-virgula) sau prin apasarea dupa fiecare linie a tastei <Enter>
Exemplu:
1 2 3
 m1 = [1 2 3; 4 5 6; 7 8 9] returneaza matricea m1 = 4 5 6
7 8 9

m = [v_col1 v_col2 v_col3 ...] Construieste matricea numita m, prin concatenarea unor vectori coloana
sau numiti v_col1 v_col2 v_col3 ... (toti de aceeasi dimensiune), sau prin
m = [v_lin1; v_lin2; v_lin3; ...] concatenarea unor vectori linie numiti v_lin1, v_lin2, v_lin3, ... (toti de
aceeasi dimensiune).
Exemple:
 Fie 2 vectori linie de cate 3 elemente w1 = [1 2 3] si w2 = [4 5 6]
1 2 3
m2 = [w1; w2] returneaza matricea 23 de forma m2 =
4 5 6
1 4
m3 = [w1' w2']  matricea 32 de forma m3 = 2 5
3 6

matrice = [matrice1 matrice 2 Construieste o matrice prin concatenarea mai multor matrice numite
matrice3 ...] matrice1, matrice 2, matrice3, ...
sau Exemple:
matrice = [matrice1; matrice 2;  Fie 2 matrice 22 definite ca m4 = [1 2; 3 4] si m5 = [5 6; 7 8]
matrice3; ...] 1 2 5 6
m6 = [m4 m5] returneaza matricea 24 de forma m6 =
3 4 7 8
1 2
3 4
m7 = [m4; m5]  matricea 42 de forma m7 =
5 6
7 8

Pag. 5 din 10
Copyright  2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti

[X,Y] = meshgrid(x,y) Comanda meshgrid este folosita in grafica 3D, pentru generarea
suprafetelor tridimensionale. Comanda meshgrid genereaza 2 matrice
care definesc o retea dreptunghiulara cu m linii si n coloane in planul
xOy, unde x este vectorul linie cu n elemente de pe axa Ox si y este
vectorul linie cu m elemente de pe axa Oy. Daca n = m, reteaua este
patratica. In fiecare punct definit de linia i si coloana j din reteaua de
dimensiuni mn, coodonatele sunt x(j) si y(i).
Exemplu:
 Fie x = [1 2] si y = [3 4 5]
1 2 3 3
[X,Y] = meshgrid(x,y) returneaza X = 1 2 si Y = 4 4
1 2 5 5
Elementul {X3, Y2} din reteaua dreptunghiulara (aflat pe linia 3, coloana 2)
are coordonatele {2, 5}, adica 2 pe axa Ox, respectiv 5 pe axa Oy

A' Transpunerea unui matrice. Daca A este o matrice, A' este matricea
sau transpusa (daca contine numere complexe, prin transpunere vor fi afisate
transpose(A) conjugatele); transpose(A) este echivalent cu A' cu deosebirea ca la
transpunere nu conjuga elementele complexe.
Exemple:
 Fie matricea m8 = [1 2+i; 3 4]
1  0i 3  0i
m9 = m8' returneaza m9 =
2  1i 4  0i
1  0i 3  0i
m10 = transpose(m8) returneaza m10 =
2  1i 4  0i

rand(n) rand(n) returneaza o matrice cu nn elemente arbitrar distribuite in


intervalul (0, 1)
rand(n,m) rand(n,m) returneaza o matrice cu nm elemente arbitrar distribuite in
intervalul (0, 1)

Matrice speciale: Sintaxa Descriere si exemple

eye(n) eye(n) returneaza matricea identitate de dimensiuni nn (avand 1 pe


sau diagonala principala si in rest elemente egale cu 0).
eye(n,m) eye(n,m) returneaza matricea identitate de dimensiuni nm.
Exemple:
1 0 0
 m11 = eye(3) returneaza matricea m11 = 0 1 0
0 0 1
1 0 0
 m12 = eye(2,3) returneaza matricea m12 =
0 1 0

zeros(n) Returneaza matricea zero de dimensiuni nn respectiv nm (avand toate
sau elementele egale cu 0).
zeros(n,m) Exemple:
0 0
 m13 = zeros(2) returneaza matricea m13 =
0 0

Pag. 6 din 10
Copyright  2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti

0 0 0
 m14 = zeros(2,3) returneaza matricea m14 =
0 0 0
Pentru a crea un vector linie cu m elemente nule se scrie: zeros(1,m)
Pentru a crea un vector coloana cu n elemente nule se scrie: zeros(n,1)

ones(n) Returneaza matricea unitate de dimensiuni nn respectiv nm (avand


sau toate elementele egale cu 1).
ones(n,m) Exemple:
1 1
 m15 = ones(2) returneaza matricea m15 =
1 1
1 1 1
 m16 = ones(2,3) returneaza matricea m16 =
1 1 1
Pentru a crea un vector linie cu m elemente = 1 se scrie: ones(1,m)
Pentru a crea un vector coloana cu n elemente = 1 se scrie: ones(n,1)

 Introducerea sirurilor de caractere


In GNU Octave, in cadrul unei linii de comanda, sirul de caractere (sau string in engleza) se introduce
intre apostroafe sau intre ghilimele.
In MATLAB , in cadrul unei linii de comanda, sirul de caractere se introduce doar intre apostroafe.
Sintaxa Descriere, exemple

string = 'textul meu' Defineste sirul de caractere textul meu

matrice = str2mat(s1, s2, s3) Genereaza o matrice avand pe linii sirurile de caractere s1, s2 si s3.
Exemplu:
 s1 = 'Ion Ionescu', s2 = 'Popescu R.' si s3 = 'T. Marinescu'
Ion Ionescu
s = str2mat(s1, s2, s3) returneaza matricea s = PopescuR.
T. Marinescu

 Controlul dimensiunii vectorilor/matricelor:


Exemple pentru utilizarea functiilor length si size:
 length(v) returneaza lungimea vectorului v (numarul n de elemente din v)
 length([1:20]) returneaza ans = 20 (sunt 20 de elemente in sirul generat cu pas = 1, de la 1 la 20)
 size(A) returneaza numarul n linii si numarul m de coloane al matricei A de dimensiuni nm
 size([ 1 2 3; 4 5 6]) returneaza ans = 2 3 (adica 2 linii si 3 coloane)

 Modul de introducere a datelor:


Daca introducerea unei date (sau unei operatii) se termina cu caracterul special ; (punct-si-virgula),
atunci data este memorata in sesiunea de lucru, fara a mai fi afisata pe ecran (sau rezultatul operatiei este
memorat in sesiunea de lucru, fara a mai fi afisat pe ecran).
Vectorii, matricele sau sirurile de caractere pot fi introduse in sesiunea de lucru si prin importare
(incarcare) dintr-un fisier text, denumit de exemplu nume.txt, prin folosirea comenzii GNU Octave load, adica
load {-ascii} nume.txt sau prin folosirea comenzii GNU Octave input (vezi help input).
Exemplu:
 Fie fisierul text (ASCII) denumit valori_masurate (generat de exemplu intr-un editor de texte banal, ca
Notepad). Fisierul poate fi creat prin inserarea pe 2 coloane (sau m coloane) a valorilor a doua variabile
(sau m variabile) diferite. Se trec, de exemplu, pe coloana 1 valorile unui vector care reprezinta lungimi (de
exemplu, cu 2000 de valori) si se trec pe coloana 2 valorile unui alt vector care reprezinta temperaturi (de
Pag. 7 din 10
Copyright  2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti

asemenea, cu 2000 de valori). Pentru a importa matricea de dimensiuni 20002 in programul curent din
GNU Octave, respectiv pentru a citi datele din matrice si a le atribui variabilelor din program se scrie astfel
(fie L = lungime si T = temperatura):
octave:1> load valori_masurate % importa fisierul valori_masurate
octave:2> L = valori_masurate(:,1); % citeste si atribuie variabilei L valorile din toata coloana 1
octave:3> T = valori_masurate(:,2); % citeste si atribuie variabilei T valorile din toata coloana 2
unde caracterul : (doua puncte) are semnificatia "toate liniile".

1.5. EXTRAGEREA, SALVAREA & FORMATUL DATELOR

 Extragerea si salvarea datelor:


Daca v este un vector cu n elemente, iar vk este elementul vectorului situat in pozitia k, unde k variaza
intre 1 si n, atunci v(k) permite extragerea elementului de pe pozitia k.
Daca A este o matrice de dimensiuni nm, iar aij este elementul situat pe linia i si coloana j, unde i
variaza intre 1 si n, iar j variaza intre 1 si m, atunci A(i,j) permite extragerea elementului de pe pozitia {i,j}.
diary data.txt extrage rezultatele din sesiunea de lucru (fara partea de grafica) si le salveaza in fisierul
data.txt (in format ASCII), pana la comanda diary off
save(-option, nume, v1, v2) salveaza in fisierul nume variabilele v1 si v2 cu optiunea precizata (ascii,
binary, zip etc.); vezi help save
Exemplu: save('-ascii', 'nume_fisier', 'v1', 'v2') sau save -ascii nume_fisier v1 v2
save -ascii nume a b* salveaza in fisierul nume, in format text (ASCII), atat variabila a, cat si toate variabilele
care incep cu litera b
saveimage(nume, M, fmt, map) salveaza matricea M in fisierul nume ca imagine in format fmt; acest
format poate lua valorile: 'img' (Octave's image format), 'ppm' (Portable pixmap format), 'ps' (PostScript
format). Al patrulea argument, map, stabileste paleta de culori colormap cu care se salveaza imaginea.

 Formatul datelor:
format [options] stabileste formatul datelor de iesire din punct de vedere al numarului de zecimale
afisate, in functie de optiunea precizata (vezi help format si tabelul care urmeaza).
Comanda format fara optiune restabileste modul implicit de iesire a datelor, anume format short.
Comanda Informatii despre modul de afisare Exemple

format short Afisare implicita cu 5 cifre semnificative. 3.1416 (asa este afisat )
format short e Format exponential (puteri ale lui 10) cu mantisa cu 3.1416e+00
5 cifre semnificative

format long Afisare cu precizie maxima, cu 15 cifre semnificative. 3.14159265358979


format long e Format exponential (puteri ale lui 10) cu mantisa cu 3.14159265358979e+000
15 cifre semnificative

format bank Format bancar, cu 2 cifre dupa virgula 3.14 (asa este afisat )

format hex Format hexazecimal (afisare in baza 16) ( =) 400921fb54442d18

dec2bin(n) Converteste un numar n din baza 10, in baza 2.  dec2bin(2010) returneaza


ans = 11111011010
bin2dec('s') Converteste un numar (continut in stringul s) din  bin2dec('11111011010')
baza 2, in baza 10 returneaza ans = 2010

dec2hex(n) Converteste un numar din baza 10, in baza 16.  dec2hex(2748) returneaza
ans= ABC
hex2dec('s') Converteste un numar (continut in stringul s) din  hex2dec('12b') returneaza

Pag. 8 din 10
Copyright  2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti

baza 16, in baza 10 ans = 299

dec2base(n,b) Converteste un numar natural n in baza b.  dec2base(123,3)


returneaza ans = 11120
base2dec('s',b) Converteste un numar (continut in stringul s) din  base2dec('11120',3)
baza b, in baza 10 returneaza ans = 123

1.6. FUNCTII SPECIFICE SIRURILOR DE VALORI

Sintaxa Descriere

max(w) Daca w este un sir de valori (un vector) cu n elemente, max(w) returneaza cel mai mare
termen al sirului (termenul cu valoare maxima)

min(w) Daca w este un sir de valori (un vector) cu n elemente, min(w) returneaza cel mai mic
termen al sirului (termenul cu valoare minima)

mean(w) Daca w este un sir de valori (un vector) cu n elemente, mean(w) returneaza media
aritmetica a valorilor din sir

sum(w) Returneaza suma termenilor sirului w

prod(w) Returneaza produsul termenilor sirului w

sort(w) Sorteaza termenii sirului w in ordine crescatoare

-sort(-w) Sorteaza termenii sirului w in ordine descrescatoare

LABORATOR 1: PROBLEME PROPUSE

 Folosind comanda help, sa se listeze informatiile legate de constantele built-in din GNU Octave: e, eps, i, j,
inf, Inf, NaN, nan, realmax, realmin, pi

 Folosind comanda help, sa se listeze informatiile legate de cuvintele rezervate din GNU Octave: break,
continue, else, elseif, end, for, endfor, function, endfunction, global, if, endif, plot, return, while, endwhile

 Folosind comanda help, sa afiseze pe ecran toate informatiile despre functiile: load, save si diary

 Se da sirul de valori: w = [1, -4, log2(40), exp(3), log10(1000), log(42), sqrt(51)]. Se cere:
 Sa se introduca cu afisare pe ecran sirul, cu numele din sir in format long
 Sa se gaseasca cel mai mare termen al sirului si cel mai mic termen al sirului
 Sa se calculeze media aritmetica a termenilor
 Sa se calculeze suma termenilor si produsul termenilor
 Sa se sorteze sirul in ordine crescatoare si apoi in ordine descrescatoare.
HELP: Se vor folosi functiile max, min, mean, sum, prod, sort si -sort.
2 1 log(6) 1
2 1 0 sqrt(12)
 Se da matricea A =
3 e 1 1
2 2 2 5

Pag. 9 din 10
Copyright  2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti

Se cere sa se afiseze pe ecran matricea A in format short, short e, long, long e, bank, apoi sa se revina in
formatul implicit (short).

 Se da sirul de valori u = {2004, 2005, 2006, 2007, 2008, 2009, 2010}, cu numerele scrise in baza 10. Sa se
afiseze pe ecran vectorul u, apoi sa se scrie cate un vector care sa contina valorile sirului in ordine
descrescatoare scrise in baza 2, in baza 16, respectiv in baza 7.

Pag. 10 din 10