MX_SLFS – Ukládání a čtení matice/vektoru do souboru nebo textového retě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 pripojený 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 a je podrobně vysvětlen u popisu tohoto parametru. 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ě.
Vstupy
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 |
Parametry
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ýstupy
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ší]
2020 © REX Controls s.r.o., www.rexygen.com