Laborator_1_Informatica
-
Upload
liliblondyx -
Category
Documents
-
view
215 -
download
0
Transcript of Laborator_1_Informatica
-
8/8/2019 Laborator_1_Informatica
1/10
Copyright 2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti
Pag. 1 din 10
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-ulhttp://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)
http://www.gnu.org/software/octave/http://www.gnu.org/software/octave/http://www.gnu.org/http://www.gnu.org/http://www.gnu.org/http://www.gnu.org/copyleft/gpl.htmlhttp://www.gnu.org/copyleft/gpl.htmlhttp://www.gnu.org/software/octave/acknowledgments.htmlhttp://www.gnu.org/software/octave/acknowledgments.htmlhttp://www.gnu.org/software/octave/doc/interpreter/http://www.gnu.org/software/octave/doc/interpreter/http://www.gnu.org/software/octave/doc/interpreter/http://www.gnu.org/software/octave/download.htmlhttp://www.gnu.org/software/octave/download.htmlhttp://www.gnu.org/software/octave/download.htmlhttp://www.gnu.org/software/octave/doc/interpreter/http://www.gnu.org/software/octave/acknowledgments.htmlhttp://www.gnu.org/copyleft/gpl.htmlhttp://www.gnu.org/http://www.gnu.org/software/octave/ -
8/8/2019 Laborator_1_Informatica
2/10
Copyright 2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti
Pag. 2 din 10
1.2. COMENZI UTILE & CUVINTE REZERVATE
Comanda Descriere
Intrarea in mediul GNU Octave: dublu clickpe 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
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
helpnume
help helpreturneaza indicatii despre folosirea help;
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
history 20 Octave are istoric de comenzi (pentru a aduce in linia de comanda curenta, anumitecomenzi 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
whos
Listeaza variabilele curente din memorie.
Listeaza variabilele curente, dimensiunea lor, precum si tipul acestora
clear nume Sterge din memoria sesiunii de lucru variabile, functii etc.
disp nume
type nume
Afiseaza pe ecran mesajul/rezultatele din nume (nume poate fi o functie GNU Octave
sau un scriptGNU Octave)
echo on
echo off
Tot ce urmeaza dupa comanda echo on, este afisat pe ecran.
echo offinhiba echo on
diary nume_fisier
diary off
Salveaza sesiunea de lucru (mai putin partea grafica) in fisierul text nume_fisierpana la
comanda diary off. Indica locul in care se termina salvarea sesiunii de lucru
clock Returneaza un vector continand informatiile: anul curent, luna (112), ziua (131), ora
(023), minutul (059), 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
-
8/8/2019 Laborator_1_Informatica
3/10
Copyright 2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti
Pag. 3 din 10
sleep(secunde)
rename(old, new) Redenumeste fisierul old cu numele new
mkdir
rmdir
Creaza un director
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
rezervate:
break, continue, else, elseif, end, for, endfor, function, endfunction, global, gplot, if,
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 11. Comanda size returneaza dimensiunea matricei
(numarul de linii numarul de coloane).
Exemple de definire pentru scalari: a = 15.73e-12 (inseamna 121073,15a ), b = 3^2 (inseamna2
3b ),
r = sqrt(b) (inseamna b ), s = pi*r^2 (inseamna 2r ), z = -7+3*i (inseamna i37z ).
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 numepredefinite.
Constanta Descriere
pi = 3.14159265358979
isauj 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)
Infsau inf = infinit (Exemple: 1/0 = +infsau -1/0 = -inf)
NaN sau nan = nedeterminare (Not a Number).
Exemple de neterminari in GNU Octave: 0/0, inf/inf, 0*infreturneaza NaN
realmin = 2.2251e-308 (adica 308102251,2 ): cel mai mic numar pozitiv utilizabil in calcule (in virgula
mobila si dubla precizie)
realmax = 1.7977e+308 (adica 308107977,1 ): cel mai mare numar pozitiv utilizabil in calcule (in
virgula mobila si dubla precizie)
eps Exprima precizia masinii; eps = 2.2204e-16 (adica 16102204,2 ) in dubla precizie. Se
recomanda utilizarea sa atunci cand in timpul executarii unor calcule se doreste evitarea uneiimpartiri cu zero. Exemplu: cand x 0, in loc de 1/x se va scrie 1/(x+eps)
-
8/8/2019 Laborator_1_Informatica
4/10
Copyright 2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti
Pag. 4 din 10
Variabila
speciala
Descriere
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 ...]
sau
vector_linie = [b1, b2, b3, ...]
Creaza un vector linie care contine valorile sau variabilele b1, b2, b3, ...
(sau combinatii intre valori si variabile). Valorile/variabilele sunt
delimitate intre ele prin spatiu, 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;...]
sau
vector_coloana = [b1 b2 b3 ...]'
Creaza un vector coloana care contine valorile sau variabilele b1, b2, b3,
... (sau combinatii intre valori si variabile). Valorile/variabilele sunt
delimitate intre ele prin ; (punct-si-virgula), prin apasarea tastei
sau prin transpunere dintr-un vector linie folosind caracterul ' (apostrof).
Exemple:
v4 = [-3; 5; 2*e] si v5 = [1 5 9]' sunt vectori coloana;v6 = [log10(1000); log(e)] returneaza vectorul coloana v6 =
1
3
v'
sau
transpose(v)
Reprezinta transpunerea unui vector. Daca v este vector linie, atunci v'
este un vector coloana si invers. Daca vectorul linie contine numere
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:
Daca v7 = [1 2+i] atunci v8 = v7' returneaza v8 = 1i20i1
v9 = transpose(v7) returneaza v9 =1i2
0i1
vector = val_in:pas:val_fin
sau
vector = val_in:val_fin
Genereaza o multime/serie numerica, intre valoarea initiala specificata
val_in si valoarea finala val_fin, cu pasul specificat: pas. In cazul in care
nu se specifica pasul, atunci implicit, pas = 1.
Exemple:
v10 = 1:2:10 returneaza v10 = 1 3 5 7 9v11 = 1:10 returneaza v11 = 1 2 3 4 5 6 7 8 9 10
v = linspace(val_in, val_fin, n)sau
v = linspace(val_in, val_fin)
Genereaza o multime/serie numerica liniara de tip vector linie, intrevaloarea initiala specificata val_in si valoarea finala val_fin, cu (n-1)
subintervale egale, deci vectorul va avea n termeni. Daca nu se specifica
-
8/8/2019 Laborator_1_Informatica
5/10
Copyright 2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti
Pag. 5 din 10
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 valoareainitiala este 10
0= 1 si cea finala este 10
3= 1000).
Introducerea matricelor:Sintaxa Descriere si exemple
matrice = [a11 a12 ... a1m; a21
a22 ... a2m; ...; an1 an2 ... anm]
Defineste o matrice cu nliniim coloane care contine elementele aij cui = 1, 2, , n sij = 1, 2, , m. Pe o linie, elementele sunt despartite prin
spatiu, sau , (virgula), iar liniile sunt delimitate intre ele prin ;
(punct-si-virgula) sau prin apasarea dupa fiecare linie a tastei
Exemplu:
m1 = [1 2 3; 4 5 6; 7 8 9] returneaza matricea m1 =987
654
321
m = [v_col1 v_col2 v_col3 ...]
sau
m = [v_lin1; v_lin2; v_lin3; ...]
Construieste matricea numita m, prin concatenarea unor vectori coloana
numiti v_col1 v_col2 v_col3 ... (toti de aceeasi dimensiune), sau prin
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]m2 = [w1; w2] returneaza matricea 23 de forma m2 =
654
321
m3 = [w1' w2'] matricea 32 de forma m3 =63
52
41
matrice = [matrice1 matrice 2
matrice3 ...]
sau
matrice = [matrice1; matrice 2;
matrice3; ...]
Construieste o matrice prin concatenarea mai multor matrice numite
matrice1, matrice 2, matrice3, ...
Exemple:
Fie 2 matrice 22 definite ca m4 = [1 2; 3 4] si m5 = [5 6; 7 8]m6 = [m4 m5] returneaza matricea 24 de forma m6 =
8743
6521
m7 = [m4; m5] matricea 42 de forma m7 =87
65
43
21
-
8/8/2019 Laborator_1_Informatica
6/10
Copyright 2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti
Pag. 6 din 10
[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 estepatratica. In fiecare punct definit de linia i si coloana j din reteaua de
dimensiuni mn, coodonatele sunt x(j) si y(i).Exemplu:
Fie x = [1 2] si y = [3 4 5][X,Y] = meshgrid(x,y) returneaza X =
21
21
21
si Y =
55
44
33
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 OyA'sau
transpose(A)
Transpunerea unui matrice. Daca A este o matrice, A' este matriceatranspusa (daca contine numere complexe, prin transpunere vor fi afisate
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]m9 = m8' returneaza m9 =
0i41i2
0i30i1
m10 = transpose(m8) returneaza m10 =0i41i2
0i30i1
rand(n)
rand(n,m)
rand(n) returneaza o matrice cu nn elemente arbitrar distribuite inintervalul (0, 1)
rand(n,m) returneaza o matrice cu nm elemente arbitrar distribuite inintervalul (0, 1)
Matrice speciale: Sintaxa Descriere si exemple
eye(n)
sau
eye(n,m)
eye(n) returneaza matricea identitate de dimensiuni nn (avand 1 pediagonala principala si in rest elemente egale cu 0).
eye(n,m) returneaza matricea identitate de dimensiuninm.Exemple:
m11 = eye(3) returneaza matricea m11 =100
010
001
m12 = eye(2,3) returneaza matricea m12 =010
001
zeros(n)
sau
zeros(n,m)
Returneaza matricea zero de dimensiuni nn respectiv nm (avand toateelementele egale cu 0).
Exemple:
m13 = zeros(2) returneaza matricea m13 =00
00
-
8/8/2019 Laborator_1_Informatica
7/10
Copyright 2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti
Pag. 7 din 10
m14 = zeros(2,3) returneaza matricea m14 =000
000
Pentru a crea un vector liniecu m elemente nule se scrie: zeros(1,m)
Pentru a crea un vector coloanacu n elemente nule se scrie: zeros(n,1)
ones(n)
sau
ones(n,m)
Returneaza matricea unitate de dimensiuni nn respectiv nm (avandtoate elementele egale cu 1).
Exemple:
m15 = ones(2) returneaza matricea m15 =11
11
m16 = ones(2,3) returneaza matricea m16 =111
111
Pentru a crea un vector liniecu m elemente = 1 se scrie: ones(1,m)
Pentru a crea un vector coloanacu n elemente = 1 se scrie: ones(n,1)
Introducerea sirurilor de caractereIn 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 doarintre 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 caracteres1, s2 si s3.
Exemplu:
s1 = 'Ion Ionescu', s2 = 'Popescu R.' si s3 = 'T. Marinescu's = str2mat(s1, s2, s3) returneaza matricea s =
MarinescuT.
R.Popescu
IonescuIon
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 nmsize([ 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, caNotepad). 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
-
8/8/2019 Laborator_1_Informatica
8/10
Copyright 2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti
Pag. 8 din 10
asemenea, cu 2000 de valori). Pentru a importa matricea de dimensiuni 20002 in programul curent dinGNU 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> loadvalori_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 elementuluide pe pozitia k.
Daca A este o matrice de dimensiuni nm, iar aij este elementul situat pe linia i si coloana j, unde ivariaza intre 1 si n, iarj variaza intre 1 si m, atunci A(i,j) permite extragerea elementuluide pe pozitia {i,j}.
diary data.txt extrage rezultatele din sesiunea de lucru (fara partea de grafica) si le salveaza in fisieruldata.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
format short e
Afisare implicita cu 5 cifre semnificative.
Format exponential (puteri ale lui 10) cu mantisa cu
5 cifre semnificative
3.1416 (asa este afisat )
3.1416e+00
format long
format long e
Afisare cu precizie maxima, cu 15 cifre semnificative.
Format exponential (puteri ale lui 10) cu mantisa cu15 cifre semnificative
3.14159265358979
3.14159265358979e+000
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)
bin2dec('s')
Converteste un numar n din baza 10, in baza 2.
Converteste un numar (continut in stringul s) din
baza 2, in baza 10
dec2bin(2010) returneazaans = 11111011010
bin2dec('11111011010')returneaza ans = 2010
dec2hex(n)
hex2dec('s')
Converteste un numar din baza 10, in baza 16.
Converteste un numar (continut in stringul s) din
dec2hex(2748) returneazaans= ABC
hex2dec('12b') returneaza
-
8/8/2019 Laborator_1_Informatica
9/10
Copyright 2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti
Pag. 9 din 10
baza 16, in baza 10 ans = 299
dec2base(n,b)
base2dec('s',b)
Converteste un numar natural n in baza b.
Converteste un numar (continut in stringul s) din
baza b, in baza 10
dec2base(123,3)returneaza ans = 11120
base2dec('11120',3)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.
Se da matricea A =5222
11e3
sqrt(12)012
1log(6)12
-
8/8/2019 Laborator_1_Informatica
10/10
Copyright 2010, INFORMATICA, Sanda-Carmen Georgescu & Tudor Petrovici
Catedra de Hidraulica, Masini Hidraulice si Ingineria Mediului, Facultatea de Energetica,
Universitatea POLITEHNICA din Bucuresti
Pag. 10 din 10
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 seafiseze 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.