abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 22:44 | Nová verze

    Programovací jazyk Python byl vydán v nové major verzi 3.15.0. Podrobný přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 22:33 | Zajímavý projekt

    BIGWORDS.PAGE je open-source webová aplikace, která po otevření odkazu v prohlížeči vykreslí přes celou obrazovku jednoduché informační sdělení. Zpráva i její nastavení jsou uložené v části URL za znakem #, například odkaz https://bigwords.page/#abclinuxu zobrazí jako velký bílý nápis 'abclinuxu' na černém pozadí. Obsah odkazu lze upravovat i vestavěným editorem, ten umožňuje nastavovat formátování a vizuální efekty textu, časovače, QR kódy a obrázky. Zdrojový kód je dostupný pod licencí MIT na GitHubu.

    ❗Červivý Hřib krade❗ | Komentářů: 7
    včera 11:55 | Upozornění

    V neděli 11. října proběhne rotace klíče kořenové zóny. Podruhé v historii. Ondřej Filip na blogu CZ.NIC: "Pokud je pro Vás DNS protokol spíše výzva, ale přesto spravujete nějakou síť či DNS resolver, zkuste si jednoduchý test, který připravila firma Cloudflare na této adrese. Obzvláště zbystřit byste měli, pokud uvidíte nějaká červená políčka."

    Ladislav Hagara | Komentářů: 12
    včera 09:55 | IT novinky

    Vláda Spojených států se rozhodla vyřadit americkou softwarovou společnost Microsoft a několik dalších velkých technologických podniků z programu, který umožňuje kvalifikovaným zahraničním pracovníkům získat povolení k trvalému pobytu. Oznámila to včera administrativa amerického prezidenta Donalda Trumpa. Opatření zdůvodnila rozsáhlým zneužíváním programu, který je dlouhodobě terčem kritiky ze strany Trumpových příznivců, neboť prý znevýhodňuje americké pracovníky.

    Ladislav Hagara | Komentářů: 11
    včera 09:44 | IT novinky

    Datové centrum největší ruské technologické společnosti Jandex v Rjazaňské oblasti se stalo cílem dronového útoku a zastavilo provoz. Jandexu se někdy přezdívá „ruský Google“. Provozuje nejoblíbenější internetový vyhledávač v Rusku nebo aplikace pro objednávky jídla a taxi. Využívají jej desítky milionů lidí v rusky mluvících zemích.

    Ladislav Hagara | Komentářů: 11
    včera 09:33 | Nová verze

    Francouzská společnost Mistral AI představila Mistral Large 4 (interně přezdívaný 'le Chonk', volně přeloženo 'pořádný macek'), 'open-weight multimodální hybridní instruct-and-reasoning model s architekturou granulárního MoE, nativně podporující více jak 160 jazyků'. Model má přes jeden bilión parametrů, z nichž při práci využívá 49 miliard, kontextové okno o délce milion tokenů a obrazový enkodér o 1,6 miliardách parametrů.

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 2
    včera 03:22 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.20. Díky 227 přispěvatelům.

    Ladislav Hagara | Komentářů: 0
    včera 03:11 | Komunita

    Simon Long oznámil Raspberry Pi Desktop pro PC a Mac s Intelem postavený na aktualizovaném Debianu 13 Trixie. S klientem Raspberry Pi Connect pro vzdálenou správu. Ke stažení je vedle Raspberry Pi OS pro Raspberry Pi.

    Ladislav Hagara | Komentářů: 1
    8.10. 21:33 | Zajímavý projekt

    ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 0
    8.10. 21:00 | Zajímavý software

    ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 9
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2822 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Octave - 6 (práce se soubory)

    28. 2. 2006 | Jiří Poláček | Programování | 8961×

    Přístup k souborům a složkám operačního systému, naplnění matice ze souboru a uložení obsahu matice do souboru.

    Aktuální složka

    Pomalu se propracováváme k využívání souborů v Octave - buď jako úložiště dat nebo programů. Proto nesmí chybět seznámení, jak lze souborový systém v Octave správně uchopit. Začněme příkazy známými z shellu: pwd (Path to Working Directory) a cd (Change Directory):

    % Ve Windows
    >> pwd
    /octave_files
    >> cd c:\matlab
    >> pwd
    /cygdrive/c/matlab
    % V Linuxu
    >> pwd
    /home/user
    >> cd /tmp
    >> pwd
    /tmp

    V Linuxu bývá po spuštění aktuální složkou ta, ve které jsme Octave spustili, a s přístupem do jiných složek není žádný problém. V prostředí Windows běží Octave s pomocí Cygwin, jako kořenový adresář se nastavuje složka, ve které je Octave nainstalováno - přístup do jiných složek nicméně možný je, jednotky diskových oddílů se mapují do virtuálního adresáře cygdrive. Ve Windows je možno jako oddělovač složek použít obou lomítek - těch rozdílů mezi linuxovou a windowsovou verzí Octave lze při práci se soubory zaznamenat více.

    Pro výpis souborů v aktuální složce slouží příkazy ls a dir:

    >> ls
    data  funkce.m  skript.m
    >> dir ('/data/matlab')
    data  funkce.m  skript.m

    Seznam souborů ze zadané složky lze uložit do matice pomocí funkce readdir:

    >> files=readdir('.')
    files =
    .
    ..
    data
    funkce.m
    skript.m

    Znak tečka zde označuje aktuální složku.

    Práce se soubory a složkami

    Octave samozřejmě umí vytvářet a mazat adresáře, přejmenovávat soubory apod. Názvy souborů a adresářů se zadávají jako textové parametry funkcí, které - pokud operace dopadla úspěšně - vrací hodnotu 0:

    >> ls
    data  funkce.m  skript.m
    >> mkdir('slozka')		% Vytvoř novou
    složku slozka
    ans = 0
    >> ls
    data  funkce.m  skript.m  slozka
    >> rmdir('slozka')		% Smaž složku
    slozka
    ans = 0
    >> ls
    data  funkce.m  skript.m

    Funkce mkdir vytvořila složku pojmenovanou slozka, kterou následně smazala funkce rmdir. Soubor se maže funkcí unlink a přejmenovává pomocí rename:

    >> ls
    data  funkce.m  skript.m
    >> unlink('data')			% Smaž soubor data
    ans = 0
    >> rename('skript.m','program.m')	% Přejmenuj skript na program
    ans = 0
    >> ls
    funkce.m  program.m

    Pro pečlivky - uvedené funkce mohou vracet dvouprvkový vektor [navratova_hodnota, text_chybove_zpravy], tj. pokud je návratová hodnota nenulová, z textu chybové zprávy můžeme vypátrat, v čem tkví problém. Případné zájemce o další podrobnosti a „systémové utility“ opět odkáži na dokumentaci. Zde uvedeme již jen užitečný příkaz diary - s jeho pomocí lze veškerý výstup v terminálu kopírovat do zvoleného souboru:

    >> diary lekce3.txt
    >> A=34; B=A/7;
    >> diary off

    Předchozí příkazy zařídí vytvoření souboru lekce3.txt, jehož obsahem budou řádky uvedené dál až po příkaz diary off, který toto logování vypíná. Opětovně lze zapnout s parametrem on.

    Získání dat ze souboru

    Již dříve jsme uvedli, že matici je možno naplnit výčtem jejích jednotlivých prvků nebo funkcí, jako jsou například zeros, eye, rand apod. Další možností, jak tohoto dosáhnout, je nahrání dat ze souboru. Mějme například textový soubor mereni.txt s následujícím obsahem:

    --[soubor mereni.txt]--
    12 3 5.4 76
    1 2 4.3 89
    -1 +5 9.999 100
    --[konec souboru]--

    Vidíme, že se jedná o matici správně zapsaných čísel, a tudíž obsah tohoto souboru můžeme nahrát do proměnné v Octave pomocí příkazu load:

    >> load mereni.txt
    >> whos
    prot  type             rows   cols  name
    ====  ====             ====   ====  ====
     rwd  matrix              3      4  mereni
    >> mereni
    mereni =
      1.0e+02  *
       0.12000   0.03000   0.05400   0.76000
       0.01000   0.02000   0.04300   0.89000
      -0.01000   0.05000   0.09999   1.00000

    Z výpisu příkazu whos vidíme, že nám vznikla nová proměnná mereni čítající tři řádky a čtyři sloupce - Octave proměnnou automaticky pojmenovává podle názvu souboru bez přípony. Z výpisu obsahu proměnné mereni pak vidíme, že skutečně obsahuje ta čísla, která jsou uložena v souboru mereni.txt. Tímto způsobem můžeme relativně snadno do Octave dostat kvanta čísel „získaná někde jinde“, například z nějakého tabulkového kalkulátoru, a dále zpracovávat.

    Pokud by již existovala proměnná pojmenovaná stejně jako nahrávaný soubor (což nastane typicky tehdy, když se pokoušíme nahrát jeden soubor opakovaně), Octave vypíše varování a soubor nenahraje. Přepsání lze donutit přepínačem -force uvedeným bezprostředně za příkazem load:

    >> load mereni.txt    
    warning: load: local variable name `mereni' exists
    warning: use `load -force' to overwrite
    >> load -force mereni.txt

    Ukládání obsahů proměnných do souborů

    Pro ukládání obsahů proměnných do souborů existuje příkaz save:

    >> save mereni

    Uvedený příkaz zapříčiní vytvoření souboru mereni v aktuální složce, který ovšem po otevření v nějakém textovém editoru nebude uživatelsky moc čitelný. Octave totiž obsahy proměnných ve výchozím nastavení ukládá do binárních souborů, které oproti čistému textu nabízí následující výhody:

    • do souboru lze uložit více proměnných
    • kromě obsahů jednotlivých proměnných se zde ukládají také jejich jména a další užitečná metadata
    • je zajištěna maximální přesnost při ukládání reálných čísel
    • jelikož je ukládání čísel v binární podobě úspornější než v textové podobě, může to pro hodně velké matice velkých či reálných čísel znamenat výraznou úsporu ve velikosti souboru

    Naproti tomu je čistý text snadno čitelný uživatelem a dá se importovat do jiných programů; volba vhodného formátu se tedy odvíjí od toho, co uživatel s uloženými daty zamýšlí:

    • -ascii - uloží data jako čistý text
    • -binary - binární formát Octave, hodí se pro zálohu dat
    • -mat-binary - binární formát Matlabu od verze 5, lze tedy použít pro přenos dat z a do Matlabu
    • -hdf5 - volně využitelný univerzální binární formát používaný některými vědeckými aplikacemi

    Volbu formátu zajistíme prvním parametrem příkazu save, druhý parametr vymezuje jméno souboru a následující pak názvy proměnných, které se mají uložit. Neuvedeme-li žádnou proměnnou, uloží se všechny z aktuálního paměťového prostoru (tj. ty, které vypíše příkaz who). Následující příkaz tedy uloží matici mereni v čistém textu do souboru mereni-cisty_text.txt:

    >> save -ascii mereni-cisty_text.txt mereni

    Výchozí formát, ve kterém se mají proměnné do souborů ukládat, lze nastavit v zabudované proměnné default_save_format. Podobně proměnná save_precision upřesňuje, kolik desetinných míst se má ukládat, pokud je jako formát zvolen čistý text.

    Dodejme ještě, že příkaz load automaticky detekuje formát souboru, z kterého nahrává - nicméně stejnými parametry jako u příkazu save jej můžeme donutit, aby předpokládal zadaný formát u nahrávaného souboru. Podobně lze za název souboru uvést seznam proměnných, které se ze souboru mají nahrát (v případě binárních formátů), bez uvedení se nahrají všechny proměnné.

    Nejčtenější články posledního měsíce

    Týden na ITBiz: Bez lidí zůstane polovodičová strategie na papíře
    Týden na ITBiz: Kód generovaný LLM je stále plný bezpečnostních chyb
    Týden na ITBiz: Tržby z podnikových úložných systémů se meziročně zvýšily o 33,6 %

    Nejkomentovanější články posledního měsíce

    Událo se v týdnu 40/2026
      všechny statistiky »

    Seriál Octave (dílů: 16)

    Octave - 1 (je to kalkulačka) (první díl)
    <—« Octave - 5 (práce s řetězci)
    »—> Octave - 7 (vlastní skripty a funkce)
    Octave - 16 (a co dál?) (poslední díl)

    Související články

    Octave - 1 (je to kalkulačka)
    Octave - 2 (počítání s maticemi)
    Octave - 3 (přístup k jednotlivým položkám matice)
    Octave - 4 (je to pravda?)
    Octave - 5 (práce s řetězci)
    Octave - 7 (vlastní skripty a funkce)
    Octave - 8 (větvení programu)
    Octave - 9 (cykly)
    Octave - 10 (zbylé řídicí struktury)
    Octave - 11 (kreslíme grafy)
    Octave - 12 (měřítko os a speciální grafy)
    Octave - 13 (dokončení grafiky)
    Octave - 14 (finance a statistika)
    Octave - 15 (špetka matematiky)
    Octave - 16 (a co dál?)
    Vektorový elegán Ipe
    Recenze: Kniha kódů a šifer
    Awk & sed: Příručka pro dávkové zpracování textu
    SETI@home
    Jak se píše procesor
    GnuCash - domácí účetnictví na úrovni
    Použití gnuplot pro tvorbu grafů v PHP
    Hra s písmenky - wxMaxima

    Odkazy a zdroje

    Octave

    Další články z této rubriky

    LLVM a Clang – více než dobrá náhrada za GCC
    Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
    Reverzujeme ovladače pro USB HID zařízení
    Linux: systémové volání splice()
    Programování v jazyce Vala - základní prvky jazyka
           

    Hodnocení: 100 %

            špatné • dobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    5.3.2006 01:07 Formol
    Rozbalit Rozbalit vše Re: Octave - 6 (práce se soubory)
    Ahoj, jsem jediná LAMA, co má problémy s plotem? Když zadám plot, tak mi to po delším čekání slavnostně napíše:
    >> plot(t,y)
    >> Timeout: gnuplot is not ready
    Signal 127
    warning: connection to external plotter (pid = 509527) lost --
    warning: please try your plot command(s) again
    

    Netušíte někdo, kde dělám chybu? Jo, a mám wokýnka Me :(
    Jiří Poláček avatar 5.3.2006 12:00 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
    Rozbalit Rozbalit vše Re: Octave - 6 (práce se soubory)
    a je gnuplot nainstalován?
    Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
    5.3.2006 13:59 Formol
    Rozbalit Rozbalit vše Re: Octave - 6 (práce se soubory)
    pre-verze 4.0. A Octave mám 2.1.42...
    6.3.2006 14:21 VJKM
    Rozbalit Rozbalit vše Re: Octave - 6 (práce se soubory)
    je Oktáva spuštěná v Cygwin X-terminálu (xterm)? Běží X server ?
    7.3.2006 07:48 JaSel | skóre: 17 | blog: kseles
    Rozbalit Rozbalit vše Re: Octave - 6 (práce se soubory)
    Možná už je dneska pozdě, ale napadl mě až ted při čtení dalšího dílu jeden problém, který tematicky patří tady.

    Týká se ukládání a načítání dat ze souboru. Dá se octave nějak donutit, aby uložila jenom samotná data, bez těch prvních asi pěti řádků s popisem, jako to dělá při parametru -text/-ascii příkazu save?

    Pak když je chci znova načíst v dalším skriptu, obvykle zapomenu, jak se ta proměnná jmenovala, a načte se mi to trošku podivně. Zkuste sekvenci následujících tří příkazů:

    A = rand(4,3)
    save -text 'A.txt' A
    B = load -text 'A.txt'

    Postupně jsem přišel na to, že když z uloženého souboru A.txt umažu těch pár popisných řádků, vše funguje, jak má, ale je to takové divné řešení. Nevíte, jak na to?

    Jiří Poláček avatar 7.3.2006 22:36 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
    Rozbalit Rozbalit vše Re: Octave - 6 (práce se soubory)
    Hmm, mám tu verzi Octave 2.1.57 a volba -text nikde ...

    Hledal bych řešení zde, ale nějak ho tu nevidím. Octave se za každou cenu snaží uložit s obsahem proměnných také jejich jména, takže
    load 'promenne.txt' 
    
    obnoví všechny proměnné z uvedeného souboru a
    B = load 'promenne.txt' 
    
    obnoví všechny proměnné organizované v datové struktuře se jménem B, takže k jednotlivým proměnným lze přistupovat jako B.<název proměnné>, v popisovaném případě tedy jako B.A.
    Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
    8.3.2006 07:38 JaSel | skóre: 17 | blog: kseles
    Rozbalit Rozbalit vše Re: Octave - 6 (práce se soubory)

    Ta volba -text je poměrně nová. V Octave 2.1.71 už je. Měla by být stejná jako volba -ascii. Tu jsem používal dříve, ale prý se má používat -text:

    octave:2> save -ascii 'A.txt' A
    warning: the meaning of this option will change in a future
    warning: version of Octave to be compatible with Matlab.
    warning: To keep the meaning of your code the same across
    warning: this change, use the -text option instead.
    octave:3> version
    ans = 2.1.71

    Problém bude asi spíše ve mně, měl bych zkusit používat rozumné názvy proměnných a důsledně podle nich pojmenovávat soubory, do kterých je ukládám. Nebo se naučit používat nějaké ty nízkoúrovnové operace se soubory.

    Jinak te seriál je skvělý.

    Založit nové vlákno • Nahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.