MX_SLFS – Ukládání a čtení matice/vektoru do souboru nebo textového řetězce
Symbol blokuPotřebná licence: STANDARD
Popis funkce
Blok umožňuje konvertovat matici nebo vektor do textové podoby a naopak. Matice se
přivádí jako odkaz na vstup uMV. Výstup yMV odkazuje na stejnou matici, jako vstup uMV
a je určen pro řetězení maticových bloků ve správném pořadí, jak je obvyklé u
všech bloků ze skupiny MATRIX.
Text může být buď na vstupu uStr (resp. výstupu yStr pro opačný směr konverze) nebo v souboru. Pokud je text v souboru, tak jeho název je text připojený na vstup uStr. Pro název souboru platí obvyklá pravidla systému REXYGEN, tj. je relativně k datadir a není dovoleno ../ pro opuštění adresáře. Pokud je vstup uStr nepřipojený (nebo prázdný text), použije se pro jméno souboru název bloku s celou cestou (tj. včetně jména tasku a všech subsystémů) s příponou .dat.
Formát matice v textovém souboru nebo v textovém vstupu a výstupu určuje parametr format. Podpořeno je anglické i české CSV (tj. sloupce odděleny čárkou nebo středníkem), formát JSON (vytvořený firmou Google a často používaný ve webových aplikacích) a formát používaný MATLABem (pro zadávání matice ve skriptech MATLABu).
Konverze z textové podoby do matice/vektoru nebo naopak může probíhat v každém kroku algoritmu nebo je spouštěna pomocí vstupů LOAD a SAVE. Přesný způsob je určen parametrem mode:
- 1: aktivované úrovní, do/z souboru: data jsou konvertována ze souboru do matice při LOAD = on a z matice do souboru při SAVE = on; pokud jsou aktivní oba signály, je to chyba a žádná akce se neprovede,
- 2: aktivované hranou, do/z souboru : data jsou konvertována ze souboru do matice při náběžné hraně (offon) na vstupu LOAD a z matice do souboru při náběžné hraně SAVE; pokud jsou náběžné hrany na obou signálech, je to chyba a žádná akce se neprovede,
- 3: aktivované úrovní, do/z textu: data jsou konvertována ze vstupu uStr do matice při LOAD = on a z matice na výstup yStr při SAVE = on; pokud jsou aktivní oba signály, je to chyba a žádná akce se neprovede,
- 4: aktivované hranou, do/z textu: data jsou konvertována ze vstupu uStr do matice při náběžné hraně na vstupu LOAD a z matice na výstup yStr při náběžné hraně SAVE; pokud jsou náběžné hrany na obou signálech, je to chyba a žádná akce se neprovede,
- 5: trvale text do matice: data jsou konvertována ze vstupu uStr do matice v každém kroku algoritmu,
- 6: trvale matice do textu: data jsou konvertována z matice na výstup yStr v každém kroku algoritmu,
- 7: trvale soubor do matice: data jsou konvertována ze souboru do matice v každém kroku algoritmu,
- 8: trvale matice do souboru: data jsou konvertována z matice do souboru v každém kroku algoritmu.
Pokud nastane chyba, je signalizována na výstupy iE a v logu. Po fatální chybě se konverze z/do matice přestane provádět. Resetování chyby se pro mode = 1 .. 4 provede nastavením LOAD = SAVE = off, pro mode = 5 .. 8 resetování fatální chyby nelze provézt (musí se přepnout na mode = 1 .. 4 a pak zpět).
Parametr nmax slouží k předalokování výstupního textu. Pokud je nmax > 0, naalokuje se při inicializaci úlohy zadané množství znaků a pokud je to nedostatečné, blok hlásí chybu. Pokud je nmax = 0, blok zvětšuje délku výstupního textu podle potřeby. Může se zdát nesmyslné zadávat omezení na velikost, když pak může blok selhávat, ale pokud se nezadá, může v extrémním případě dojít k použití celé dostupné paměti, která pak chybí dalším komponentám (např. operačnímu systému) a pak selže celý systém nekontrolovatelně.
Tento blok nepropaguje kvalitu signálu. Více informací je uvedeno v sekci 1.4.
Vstup
uMV | Vstupní reference na matici nebo vektor | Reference |
uStr | Text pro konverzi na matici/vektor nebo jméno souboru | String |
LOAD | Povolení zápisu hodnoty do matice/vektoru | Bool |
SAVE | Povolení zápisu hodnoty do souboru/textu | Bool |
Parametr
mode | Režim spouštění konverze 2 | Long (I32) |
|
|
|
format | Formát souboru/textu 1 | Long (I32) |
|
|
|
prec | Počet platných cifer pro každou hodnotu 0 20 6 | Long (I32) |
TRN | Příznak transpozice matice | Bool |
nmax | Rezervovaná paměť pro řetězec 0 | Long (I32) |
Výstup
yMV | Výstupní reference na matici nebo vektor | Reference |
yStr | Textová podoba matice/vektoru | String |
iE | Kód chyby | Error |
[Předchozí] [Na začátek] [Výše] [Další]
2024 © REX Controls s.r.o., www.rexygen.com