Vytvoreniu vektora v predpise EDA-L predchádza zadefinovanie premennej typu VECTOR v deklaračnej časti predpisu. V predpise je možné vytvoriť viacero premenných typu VECTOR. Definovaním premennej typu VECTOR implicitne vzniká vektor nulovej dĺžky. Použitím funkcie %CreateVector je možné vytvoriť vektor s iným definovaným rozsahom s hodnotami inicializovanými na neplatné hodnoty. Funkciou %CreateVectorInit je možné vytvoriť vektor s hodnotami inicializovanými na hodnotu danú parametrom.

VECTOR _v;
INT _i;

-- Vytvorí vektor s periódou _STEP v rozsahu časov _BT .. _ET. (A1)
%CreateVector(_v, _BT, _ET, _STEP);

-- Vytvorí vektor s periódou _STEP v rozsahu časov _BT .. _ET s hodnotami inicializovanými na 0. (A2)
%CreateVectorInit(_v, 0, _BT, _ET, _STEP);

-- Vytvorí vektor s piatimi hodnotami. Časy hodnôt je následne potrebné nastaviť funkciou %SetItemTime. (B1)
-- V tomto príklade časy nastavuje od počiatočného času _BT s minútovým krokom.
%CreateVector(_v, 5);
FOR _i = 1 TO %ValuesNr(_v) LOOP
  %SetItemTime(_v, _i, _BT + (_i - 1 ) * 60);
END LOOP;

-- Vytvorí vektor s troma hodnotami inizializovanými na 0. Časy hodnôt je následne potrebné nastaviť funkciou %SetItemTime. (B2)
-- V tomto príklade časy nastavuje konkrétnymi hodnotami.
%CreateVectorInit(_v, 0, 3);
%SetItemTime(_v, 1, %TimeFromItems(2023, 1, 1, 0, 0, 0));
%SetItemTime(_v, 2, %TimeFromItems(2023, 1, 10, 5, 0, 0));
%SetItemTime(_v, 3, %TimeFromItems(2023, 1, 15, 23, 9, 0));

Prípady vytvorenia A1 a A2 sú používané vtedy, keď sa vytvára vektor s definovanou periódou v danom rozsahu časov. Funkcia vytvorí vektor s počtom hodnôt odvodeným od zadanej periódy a rozsahu časov. Časy jednotlivých hodnôt vektora budú automaticky nastavené. Ako rozsahy časov je možné použiť akékoľvek výrazy typu TIME a ako periódu je možné použiť jednu z preddefinovaných periód, konštantu _STEP v prípade, že ide o výpočet periodického vektora, kód užívateľsky definovanej periódy alebo id lokálne periódy vytvorenej funkciou %CreatePeriod.

Prípady B1 a B2 vytvárajú zmenový vektor s daným počtom hodnôt. Časy jednotlivých hodnôt vytvoreného vektora je následne potrebné explicitne nastaviť funkciou %SetItemTime.

Časy hodnôt vektora na výstupe výpočtu musia byť striktne rastúce. Časy hodnôt premenných typu VECTOR musia byť rastúce, ak je k premennej pristupované časovou indexáciou alebo ak je premenná odovzdaná na spracovanie funkcii, ktorá nad vektorom pracuje na základe časových značiek hodnôt (napr. agregácie, prekrokovanie a pod.).

Napíšte komentár