Sunteți pe pagina 1din 3

Aplicaii n Matlab. Structuri de date. 1.

Tablouri multidimensionale n Matlab Un tablou multidimensional n Matlab este un tablou cu mai mult de doi indici. O cale de a construe un tablou multidimensional este apelnd zeros, ones, rand sau randn cu mai mult de dou argumente. R=randn(3,4,5) construiete un tablou cu dimesiunile 3-4-5 cu un total de 3*4*5=60 de elemente aleatoare. Un tablou trei dimensional poate s reprezinte date fizice, cum ar fi temperatura ntr-o incpere, msurat pe o gril rectangular, sau o secven de matrici dependente de timp A(t). n acest ultim caz (i,j) este elementul matricii la momentul tk i se noteaz A(i,j,k). 2. Tablouri celul Acestea sunt tablouri multidimensionale ale cror elemente sunt copii ale altor tablouri. O celul tablou pentru o matrice goal poate sa fie creat cu funcia Matlab cell. Cel mai adesea ins celulele tablou sunt create prin introducerea coleciei respective, ntre paranteze acolad. Exemplu: A=magic(4); C={A sum (A) prod(prod(A))} Produce un tablou de 1-by-3 celule. Cele 3 celule conin ptratul magic, vectorul linie al sumelor pe coloane i produsul tuturor elementelor matricii A. C{1} ntoarce ptratul magic C{3} ntoarce valoarea 16! Trebuie reinut c celula conine copii ale altor tablouri i nu pointeri la aceste tablouri. 3. Caractere i texte Un text se poate introduce astfel: s=Buna Concatenarea se face cu paranteze drepte : h=[s, dimineata] rezultatul este un string de forma: h= Buna dimineata Construcia a=double(s) convertete tabloul de caractere la un vector numeric ce conine reprezentarea n virgul mobil a codului Ascii pentru fiecare caracter. Construcia s=char(a) este conversia invers.

Conversia numerelor n caractere face posibil investigarea fonturilor disponibile. Caracterele printabile n setul ASCII sunt reprezentate de ntregi de tipul 32:127. Intregii mai mici de 32 sunt caractere neprintabile. Pentru a manipula un text ce conine linii de diferite lungimi se pot utilize dou metode: a) Potrivirea tablourilor cu caractere. Potirvirea de spaii la liniile mai scurte. Funcia char face acest lucru: S=char(Studenii, anului, nti) produce un tablou de 3 linii i 9 coloane S= Studenii anului nti b) Stocarea textului intr-o celul de tablou. C= {Studenii;anului;nti} Produceo celul de tablou 3x 1, care nu necesit portivirea pentru c fiecare linie a tabloului poate s aib lungimi diferite C= Studenii anului nti Se poate converti un tablou potrivit la o celul de tablou de iruri (string): C=cellstr (S) i reciproc: S=char(C) 4. Structuri n Matlab Structurile sunt tablouri multidimensionale cu elementele accesate de un camp textual. Exemplu: S.nume=Andreescu Mihai S.an_nastere=1990; S.grupa_sang=A II Prin cele scrise mai sus s-a creat o structura scalar cu 3 campuri: S= nume: Andreescu Mihai an_nastere: 1990 grupa_sang: A II Ca de obicei n Matlab tim c structurile sunt tablouri, astfel pot fi inserate elemente adiionale. In astfel de caz fiecare element al tabloului este o structura cu campuri. Campurile pot fi adugate cte unul la un moment dat: S(2).nume=Boerescu Andrei S(2).an_nastere= 1991 S(2).grupa_sang=O I sau un ntreg element poate fi adugat cu o singura instruciune: S(3)=struct(nume,Costea Tudor, an_nastere, 1992, grupa_sang, A II)

Dac se tiprete : S.an_nastere se obine acelai lucru cu tiprirea : S(1).an_nastere, S(2).an nastere, S(3). an_nastere Dac se construiete expresia ca o lista ntre paranteze drepte, Matlabul stocheaz fiecare element din lista ntr-un tablou: Nastere= [ S.an_nastere] Nastere = 1990 1991 1992 Pentru a crea un tablou de caractere din unul dintre cmpurile text ( nume de exemplu) se apeleaz funcia char cu lista numelor produs de S.nume: Numele =char(S.nume) Numele= Andreescu Mihai Boerescu Andrei Costea Tudor Dac se folosesc paranteze acolad, vom obine: Numele={S.nume} Numele= Andreescu Mihai Boerescu Andrei Costea Tudor sau prin asignarea la un nume de variabil: [N1 N2 N3]=S.nume N1= Andreescu Mihai N2= Boerescu Andrei N3= Costea Tudor

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