Upload
vlad-flavius
View
213
Download
0
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)