11
 Cap.4. Grupar e de date utilizând Matrice (Array) şi Grup / Cluster şi şir / String Obiectele menţionate sunt controale / funcţii care permit gruparea datelor. Caracterele ASCII sunt grupate prin secvenţa String . O matrice / array are elementele constituite din date de acelaşi tip. Un grup / cluster  reuneşte date de tipuri diferite. 4.1. Matrice Matricea poate avea una sau mai multe dimensiuni şi pân la ! "#  $ # elemente pe fiecare dimensiune %dependent de memoria disponibil&. Se pot constitui matrici cu elemente numerice' booleene' ci %  path&' şir' form de unde %waveforms& şi grup %cluster&. Matricile sunt ideale pentru stocarea datelor colectate din buclele de calcul unde fiecare iteraţie a buclei produce un element al matricii. ()ist restricţii *n ceea ce priveşte crearea matricilor+  ,u se poate crea matrice cu elemente din matrici. -ac se doreşte o matrice multidimensional' se poate apela la matrice pe ba de grupuri / cluster unde fiecare grup / cluster conţine una sau mai multe matrici  ,u se poate crea matrice din controale panel' controale tab' controale Active0' diagrame sau grafice. 1entru a localia un element *n matrice avem nevoie de un index pe fiecare dimensiune. Indicele este un numr *ntreg' cuprins *ntre 2 şi ,3# unde , este numrul de elemente ale matricii pe dimensiunea specificat. Un e)emplu de matrice #- cu nou coloane %2...4& conţine informaţia privind modul de variaţie *n timp a cderii de tensiune pe un element. 5iecare element al matricii repreint valorile tensiunii *n mod succesiv ' la intervale de timp egale %fig.6.#&. Inde) 2 # ! " 6 7 8 9 4 :m;< !7 72 82 62 "7 62 42 =2 42 5ig. 6.#. ()emplificarea unui grup de date printr3o matrice #- Un e)emplu mai comple) de repreentare a gruprii de date este ilustrat *n figura 6.!. Matricea #- conţine informaţia despre o repreentare grafic 03>. 5iecare punct al matricii este un grup %cluster& compus dintr3o perec?e de valori numerice repreentând coordonatele 0' > . 1entru a ilustra corespondenţa valorilor cu punctele repreentate s3a utiliat un segment orientat de la un punct iniţial spre punctul urmtor. Succesiunea de repreentare are legtur doar cu inde)ul general.

Curs 5

Embed Size (px)

DESCRIPTION

5

Citation preview

1

Cap.4. Grupare de date utiliznd Matrice (Array) i

Grup / Cluster i ir / String

Obiectele menionate sunt controale / funcii care permit gruparea datelor. Caracterele ASCII sunt grupate prin secvena String. O matrice / array are elementele constituite din date de acelai tip. Un grup / cluster reunete date de tipuri diferite.

4.1. Matrice

Matricea poate avea una sau mai multe dimensiuni i pn la 231 1 elemente pe fiecare dimensiune (dependent de memoria disponibil).

Se pot constitui matrici cu elemente numerice, booleene, ci (path), ir, form de unde (waveforms) i grup (cluster).

Matricile sunt ideale pentru stocarea datelor colectate din buclele de calcul unde fiecare iteraie a buclei produce un element al matricii.

Exist restricii n ceea ce privete crearea matricilor:

Nu se poate crea matrice cu elemente din matrici. Dac se dorete o matrice multidimensional, se poate apela la matrice pe baz de grupuri / cluster unde fiecare grup / cluster conine una sau mai multe matrici;

Nu se poate crea matrice din controale panel, controale tab, controale ActiveX, diagrame sau grafice.

Pentru a localiza un element n matrice avem nevoie de un index pe fiecare dimensiune. Indicele este un numr ntreg, cuprins ntre 0 i N-1 unde N este numrul de elemente ale matricii pe dimensiunea specificat.

Un exemplu de matrice 1D cu nou coloane (0...8) conine informaia privind modul de variaie n timp a cderii de tensiune pe un element. Fiecare element al matricii reprezint valorile tensiunii n mod succesiv, la intervale de timp egale (fig.4.1).

Index 012345678

[mV]255060403540809080

Fig. 4.1. Exemplificarea unui grup de date printr-o matrice 1D

Un exemplu mai complex de reprezentare a gruprii de date este ilustrat n figura 4.2. Matricea 1D conine informaia despre o reprezentare grafic X-Y. Fiecare punct al matricii este un grup (cluster) compus dintr-o pereche de valori numerice reprezentnd coordonatele X, Y. Pentru a ilustra corespondena valorilor cu punctele reprezentate s-a utilizat un segment orientat de la un punct iniial spre punctul urmtor. Succesiunea de reprezentare are legtur doar cu indexul general.

Index012345678

Coordonata X21030354550455070

Index012345678

Coordonata Y21020304030201010

Fig. 4.2. Matrice 1D avnd elementele formate din grup de valori numericeO matrice 2D memoreaz datele elementelor ntr-o reea format din linii i coloane. n acest caz este necesar existena unui index pentru linii i a unui index pentru coloane (fig.4.3).

Indexul liniilorIndexul coloanelor

0123456

0

1

2

3

4

5

Fig. 4.3. Matrice 2D cu specificarea indexului pentru linii i coloane

Matricea din figura 4.3 are 6 linii i 7 coloane coninnd de elemente. Un exemplu sugestiv de matrice 2D este tabla de ah (8 linii, 8 coloane). La un moment dat oricare poziie poate fi goal sau coninnd o pies.

Matricea 2D se poate obine i printr-o suplimentare a liniilor la o matrice 1D. Considernd un grup de date a crui coninut cuprinde diverse semnale n timp, indexul coloanelor se ataeaz practic valorilor numerice succesive ale unui semnal. n acelai timp indexul liniilor se ataeaz categoriei de semnal. n figura 4.4 este exemplificat aceast abordare pentru dou forme de variaie a unor semnale i 9 puncte corespunztoare valorilor numerice pe fiecare semnal.Crearea unei matrici cu controale sau indicatoare presupune dou etape constnd din combinarea unei structuri matriceale aleas din paleta Controls / Array, Matrix & Cluster (LabView 8.2) (fig.4.5) cu un obiect de tip date numeric, Boolean,

012345678

0255060403540809080

1757590907575909075

Fig. 4.4. Reprezentarea a dou semnale ntr-o matrice 2D

Fig. 4.5. Localizarea subpaletei ArrayCele dou etape enunate anterior pot fi detaliate n mod suplimentar:

Etapa 1 - se selecteaz o structur matriceal din paleta Controls / Array, Matrix & Cluster i se poziioneaz n panoul frontal (fig.4.6)

Fig. 4.6. Grafica (pictograma) structurii matriceale n panel (a) i n diagrama bloc (b) Selectarea unui obiect - din caseta de controale - care urmeaz s devin element al matricii i poziionarea lui n suprafaa activ a structurii matriceale (fig.4.7), (fig.4.8).

Fig. 4.7. Matrice cu control Boolean i indicatorul echivalent asociat

Fig. 4.8. Matrice cu control numeric i indicatorul echivalent asociat

Prin apelarea meniului contextual al obiectului devenit element al matricei / tabloului putem aduga dimensiune acesteia (fig.4.9).

Fig. 4.9. Pictogramele unei matrici cu elemente numerice: matrice control (a) i indicator (b)

Cu ajutorul structurilor For Loop i While Loop se pot genera n mod automat matrici n cadrul unui proces denumit auto-indexare.

n figura 4.10 se prezint crearea unei matrici numerice n cadrul procesului de auto-indexare prin utilizarea structurii For Loop.

Fig. 4.10. Panoul frontal (a) i diagrama bloc (b) n procesul de auto-indexare

n cadrul procesului prezentat n figura 4.11 toate valorile generate n bucla For, n mod succesiv, sunt transferate i memorate n matricea indicator.

Fig. 4.11. Meniul contextual al tunelului

Dac este necesar pstrarea doar a ultimei valori generat n cadrul buclei, trebuie ca din meniul contextual al tunelului (simbolizat prin ptratul cu contur negru de pe conturul buclei) s fie selectat opiunea Disable Indexing. n acest caz se transfer o singur valoare i singurul lucru modificat este indicatorul conectat pe ieirea buclei, un indicator numeric (fig.4.12). Schimbarea este semnalizat i la nivelul simbolului tunelului.

Fig. 4.12. Transferul ultimei valori generate n cadrul buclei For Loop

Introducerea unei valori n cadrul unei bucle For Loop este ilustrat n figura 4.13. Se remarc valoarea introdus i faptul c n acest caz indexarea este validat.

Fig. 4.13. Procesul de auto-indexare la introducerea valorilor n cadrul buclei

Introducerea tuturor valorilor n cadrul buclei necesit validarea opiunii Disable Indexing (fig.4.14).

Fig. 4.14. Introducerea valorilor ntr-o bucl

Crearea unei matrici bidimensionale 2D este posibil prin utilizarea a dou bucle nseriate (una n interiorul celeilalte). Un astfel de proces este ilustrat n figura 4.15. Bucla exterioar definete elementele de pe linii iar bucla interioar definete coloanele matricei 2D. Matricea numeric creat conine 3 linii i 2 coloane.

Bucla interioar export spre exterior, prin tunelul aferent, o matrice 1D. Se poate verifica acest lucru prin introducerea corpului de prob (simbolizat prin mumrul 1). Bucla exterioar export prin tunelul aferent o matrice 2D. i n acest caz se poate verifica traficul informaiei prin corpul de prob (simbolul 2). Acest mod de lucru reiese i din tipul firelor de legtur.

Fig. 4.15. Crearea matricei 2D utiliznd bucla For Loop n cadrul procesului de auto-indexare

Cele mai multe din funciile pentru matrici sunt destinate pentru manipularea acestora. Funciile obinuite sunt disponibile n subpaleta Array n caseta de funcii Functions / All Functions (LabView 7) sau n subpaleta Programming / Array (fig.4.16).

Fig. 4.16. Paleta funciilor pentru lucru cu matrici

Funcia Array Size returneaz numrul de elemente ale unei matrici de intrare notat generic A. Dac matricea A este n- dimensional, mrimea de ieire returnat este o matrice B cu n elemente. Fiecare element al matricei B contorizeaz numrul de elemente al matricei A pe o dimensiune (fig.4.17, fig.4.18).

Fig. 4.17. Funcia Array Size i rspunsul pentru matricea de intrare A

Fig.4.18. Funcia Array Size i rspunsul pentru matricea de intrare A de tip 2D

Funcia Initialize Array creaz o matrice n dimensional cu elementele coninnd valorile specificate de utilizator. Dac se dorete crearea mai multor dimensiuni, pentru matrricea de iniializat, se apeleaz la meniul contextual n care se selecteaz Add Dimension. Un rezultat echivalent se obine dac se utilizeaz unealta de lucru Positioning din caseta Tools. n figura 4.19 se prezint pictograma iniial a funciei (a) i cea transformat pentru mai multe dimensiuni (b).

Fig. 4.19. Pictogram funciei de iniializare a unei matrrici

n figura 4.20 se prezint iniializarea unei matrici 1D cu 5 elemente pentru care s-a considerat valoarea numeric 1.12. Se prezint existena celor dou posibiliti de creare a matricii 1D.

Fig. 4.20 Utilizarea funciei de iniializare a unei matrici 1D cu elementele de valoare 1.12Iniializarea unei matrici 2D este ilustrat n figura 4.21. n scop demostrativ s-a supradimensionat instrumentul de vizualizare a matricii iniializate. Se vede astfel c dimensiunea real a matricii este cea impus.

Fig. 4.21. Iniializarea unei matrici 2D

Funcia Build Array concateneaz mai multe matrici sau adaug elemente unei matrici existente. Pictograma funciei poate fi redimensionat prin adugarea de noi intrri (ADD Input) din meniul contextual sau prin metoda clasic de redimensionare a unui obiect.

Fig. 4.22. Pictograma funciei Build Array

Concatenarea unei matrici i a dou elemente numerice este prezentat n figura 4.23. Succesiunea elementelor n noua matrice respect ordinea de sus n jos pentru elementele de intrare.

Fig. 4.23. Construcia unei matrici prin concatenarea a dou elemente i a unei matrici

Concatenarea a dou matrici este ilustrat n figura 4.24.

Fig. 4.24. Concatenarea a dou matrici cu opiunea Concatenate Inputs activat (a) i respectiv dezactivat (b)Matricea rezultat va avea dimensiunea impus de utilizator prin selectarea din meniul contextual al ieirii a opiunii de activare a concatenrii Concatenate Inputs.

Funcia Array Subset returneaz un fragment dintr-o matrice ncepnd cu elementul nominalizat prin index (intrare a funciei) i compus dintr-un numr de elemente specificat prin intrarea funciei length (fig.4.25).

Fig. 4.25. Extragerea unui fragment dintr-o matrice

Funcia Index Array returneaz elementul matricii specificat prin intrarea funciei (index-ul elementului).

Funcia Array Max & Min returneaz valoarea maxim i minim dintr-o matrice analizat. Funcia are posibilitatea vizualizrii i a index-ilor care nominalizeaz cele dou valori.

Paleta funciei Array dispune i de alte posibiliti de lucru: descompunerea unei matrici 1D (Split 1D Array), cutarea ntr-o matrice 1D (Search 1D Array), iniializarea unei matrici constante (Array Constant), conversii, etc.

4.2. Polimorfisme

Poliformismul reprezint capabilitile funciilor din LabView (de ex. adunare, nmulire, mprire) de a accepta la intrare date cu dimensiuni i reprezentri diferite. Funciile aritmetice care posed aceste proprieti se numesc funcii polimorfice.

Un exemplu clasic pentru aceast proprietate este poliformismul funciei adiionale scalar scalar, scalar matrice, matrice matrice de dimensiuni diferite. n figura 4.26 se prezint exemplul de poliformism pentru adunarea scalar - matrice.

Fig. 4.26. Poliformismul funciei de adunare: scalar matrice

n figura 4.128 se exemplific poliformismul funciei de adunare pentru adunarea a dou matrici de dimensiuni diferite. Dimensiunea matricii rezultate este cea a matricii cu numrul mai mic al elementelor. Elementele noii matrici se obin prin nsumarea clasic a elementelor corespondente, scalar scalar.

Fig. 4.27. Poliformismul n adunarea a dou matrici de dimensiuni diferite

Demonstrarea poliformismului funciei de nmulire este ilustrat n figura 4.28. Matricea de ieire are elementele nmulite cu acelai coeficient 10 (coeficient de scalare).

a)

b)Fig. 4.28. Poliformismul funciei de nmulireFunciile booleane se ncadreaz n rndul funciilor polimorfice. Se exemplific proprietatea n figura 4.29 pentru funcia AND aplicat unui scalar boolean i unei matrici. Se returneaz o matrice.

Fig. 4.29. Poliformismul funciei AND

Un rezultat asemntor se obine pentru funcia AND aplicat pentru dou matrici de dimensiuni diferite (fig.4.30).

Fig. 4.30 Poliformismul funciei AND pentru dou matrici booleane de dimensiuni diferite EMBED Word.Picture.8

EMBED Word.Picture.8

EMBED Word.Picture.8

_1260289210.doc

a)

b)

Indexul liniei

Indexul coloanei

_1260345251.doc

a)

b)

_1260345750.doc

Nr. de linii

Nr. de coloane

a)

b)

_1260347545.doc

a)

b)

_1260349905.doc

a)

b)

_1260368465.doc

_1260348798.doc

a)

b)

_1260345880.doc

a)

b)

Funcia

Array Size

_1260345385.doc

a)

b)

_1260294981.doc

a)

b)

_1260339100.doc

a)

b)

_1260345153.doc

a)

b)

_1260296563.doc

Indexul liniilor

Indexul coloanelorlor

a)

b)

_1260294158.doc

a)

b)

_1260293065.doc

_1260287043.doc

a)

b)

_1260287385.doc

a)

b)

_1260264789.unknown

_1260286034.doc

a)

b)