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í
×
    dnes 21:00 | Komunita

    Canonical oznámil, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie) v Ubuntu.

    Ladislav Hagara | Komentářů: 0
    dnes 20:44 | IT novinky

    Tržní hodnota americké společnosti Alphabet, která je majitelem internetového vyhledávače Google, dnes poprvé překonala hranici tří bilionů dolarů (62,1 bilionu Kč). Alphabet se připojil k malé skupině společností, které tuto hranici pokořily. Jsou mezi nimi zatím americké firmy Nvidia, Microsoft a Apple.

    Ladislav Hagara | Komentářů: 0
    dnes 20:33 | IT novinky

    Spojené státy a Čína dosáhly dohody ohledně pokračování populární čínské platformy pro sdílení krátkých videí TikTok v USA. V příspěvku na síti Truth Social to dnes naznačil americký prezident Donald Trump. Dosažení rámcové dohody o TikToku vzápětí oznámil americký ministr financí Scott Bessent, který v Madridu jedná s čínskými představiteli o vzájemných obchodních vztazích mezi USA a Čínou. Bessentova slova později potvrdila také čínská strana.

    Ladislav Hagara | Komentářů: 0
    dnes 16:55 | Komunita

    MKVToolNix, tj. sada nástrojů pro práci s formátem (medialnym kontajnerom) Matroska, byl vydán ve verzi 95.0. Podpora přehrávání formátu Matroska míří do Firefoxu [Bug 1422891, Technický popis]. Přehrávání lze již testovat ve Firefoxu Nightly.

    Ladislav Hagara | Komentářů: 0
    13.9. 17:33 | Pozvánky

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 211. sraz, který proběhne v pátek 19. září od 18:00 ve Studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Na srazu proběhne přednáška Jiřího Eischmanna o nové verzi prostředí GNOME 49. Nemáte-li možnost se zúčastnit osobně, přednáškový blok bude opět streamován živě na server VHSky.cz a následně i zpřístupněn záznam.

    Ladislav Hagara | Komentářů: 0
    13.9. 01:33 | IT novinky

    Microsoft se vyhnul pokutě od Evropské komise za zneužívání svého dominantního postavení na trhu v souvislosti s aplikací Teams. S komisí se dohodl na závazcích, které slíbil splnit. Unijní exekutivě se nelíbilo, že firma svazuje svůj nástroj pro chatování a videohovory Teams se sadou kancelářských programů Office. Microsoft nyní slíbil jasné oddělení aplikace od kancelářských nástrojů, jako jsou Word, Excel a Outlook. Na Microsoft si

    … více »
    Ladislav Hagara | Komentářů: 10
    12.9. 14:00 | Nová verze

    Samba (Wikipedie), svobodná implementace SMB a Active Directory, byla vydána ve verzi 4.23.0. Počínaje verzí Samba 4.23 jsou unixová rozšíření SMB3 ve výchozím nastavení povolena. Přidána byla podpora SMB3 přes QUIC. Nová utilita smb_prometheus_endpoint exportuje metriky ve formátu Prometheus.

    Ladislav Hagara | Komentářů: 0
    12.9. 12:00 | Zajímavý článek

    Správcovský tým repozitáře F-Droid pro Android sdílí doporučení, jak řešit žádosti o odstranění nelegálního obsahu. Základem je mít nastavené formální procesy, vyhrazenou e-mailovou adresu a být transparentní. Zdůrazňují také důležitost volby jurisdikce (F-Droid je v Nizozemsku).

    |🇵🇸 | Komentářů: 20
    12.9. 05:33 | Bezpečnostní upozornění

    Byly publikovány informace o další zranitelnosti v procesorech. Nejnovější zranitelnost byla pojmenována VMScape (CVE-2025-40300, GitHub) a v upstream Linuxech je již opravena. Jedná se o variantu Spectre. KVM host může číst data z uživatelského prostoru hypervizoru, např. QEMU.

    Ladislav Hagara | Komentářů: 0
    11.9. 22:00 | Komunita

    V červenci loňského roku organizace Apache Software Foundation (ASF) oznámila, že se částečně přestane dopouštět kulturní apropriace a změní své logo. Dnes bylo nové logo představeno. "Indiánské pírko" bylo nahrazeno dubovým listem a text Apache Software Foundation zkratkou ASF. Slovo Apache se bude "zatím" dál používat. Oficiální název organizace zůstává Apache Software Foundation, stejně jako názvy projektů, například Apache HTTP Server.

    Ladislav Hagara | Komentářů: 16
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (81%)
     (7%)
     (3%)
     (3%)
     (4%)
     (2%)
    Celkem 181 hlasů
     Komentářů: 12, poslední 10.9. 13:00
    Rozcestník

    Octave - 5 (práce s řetězci)

    23. 2. 2006 | Jiří Poláček | Programování | 7079×

    Kromě čísel umí Octave také pracovat s krátkými texty - řetězci. Této vlastnosti se využívá v případech, kdy je třeba jako parametr nějaké funkce zadat název souboru nebo pro čitelnější práci s vlastním programem, který může vypisovat hlášky typu „Zadejte vstupní hodnotu parametru N“ apod. Žádná extra kouzla s texty tedy nečekejte, i když...

    Zobrazování řetězců

    Octave jako řetězce chápe texty uzavřené v dvojici uvozovek nebo apostrofů; řetězce je samozřejmě možné ukládat do proměnných a dále s nimi pracovat.

    >> A="Karel"
    A = Karel
    >> B='Veronika'
    B = Veronika
    >> C=[A, ' a ', B]
    C = Karel a Veronika
    >> C(3)
    ans = r

    Pokud je potřeba mít v řetězci znak apostrof či uvozovka, je potřeba dát toto najevo zpětným lomítkem zapsaným před požadovaným znakem. Jedno zpětné lomítko se také zapíše jako dvě zpětná lomítka:

    >> '\'\\'
    ans = '\
    >> "\\\""
    ans = \"

    Jelikož Matlab pro uvozování řetězců používá pouze apostrofy, budeme se v dalším textu držet této varianty.

    Řetězce se v Octave ukládají do vektorů, kde každý znak odpovídá jednomu prvku vektoru - k jednotlivým znakům tedy lze přistupovat pomocí indexů stejně jako u číselných vektorů a matic. Zapsání více řetězců jako prvků ve vektoru má za následek jejich spojení - zřetězení, jak je vidno v příkladu u proměnné C. Pokud chceme vypsat obsah řetězce bez onoho „ans =“ na začátku, je na místě použití funkce disp:

    >> A
    A = Karel
    >> disp(A)
    Karel
    x = 35
    >> disp(['Vysledkem funkce je cislo ', x])
    Vysledkem funkce je cislo #

    Je-li částí nějakého vektoru řetězec, chápe se jako řetězec celý vektor. Pedchozí příklad proto namísto čísla 35 vypsal znak „#“, který se nachází na 35. pozici v tabulce znaků. Pro nápravu této situace existuje funkce num2str, která převádí čísla na jejich textovou podobu:

    >> disp(['Vysledkem funkce je cislo ', num2str(x)])
    Vysledkem funkce je cislo 35
    >> c=str2num('1')+str2num('1')
    c = 2

    Opačná funkce str2num převádí platnou textovou podobu čísla na číslo, s kterým je možné dále počítat - provádět matematické operace.

    Řetězce v maticích

    Určitě nebude překvapením fakt, že řetězce lze ukládat také do matic. Následující dva způsoby jsou ekvivalentní - funkce char je v Octave z důvodu kompatibility s Matlabem, který v prvém případě neumí automaticky doplňovat „vyplňující znaky“ za kratší řetězce, aby vzniklá matice měla ve všech řádcích stejný počet sloupců:

    >> M=['Karel'; 'Veronika'; 'Josef']  
    M =
    Karel   
    Veronika
    Josef 
    >> M=char('Karel', 'Veronika', 'Josef')
    M =
    Karel   
    Veronika
    Josef

    Výchozím doplňovacím znakem je mezera, lze jej však změnit pomocí vestavěné proměnné string_fill_char:

    >> string_fill_char='@';             
    >> N=['Karel'; 'Veronika'; 'Josef']
    N =
    Karel@@@
    Veronika
    Josef@@@

    Díky funkci strjust nemusí být texty v matici nutně zarovnány doleva. Přípustnými parametry jsou "left", "center" a "right":

    >> strjust(M, "right")
    ans =
       Karel
    Veronika
       Josef

    Pole buněk - cell arrays - je možností Octave, jak mít jako prvky matice skutečně celé řetězce, nikoliv jen znaky - rozdíl oproti maticím je vesměs jen v typu závorek, u pole buněk se používají složené:

    >> M={'Karel', 'Veronika'; 'Josef', 'Marie'}
    M =
    {
      [1,1] = Karel
      [2,1] = Josef
      [1,2] = Veronika
      [2,2] = Marie
    }

    Obvyklé funkce pro práci s řetězci

    Chceme-li porovnat dva řetězce, zda jsou shodné, není relační operátor „==“ na místě, pokud nás nezajímá shodnost jednotlivých znaků, která navíc funguje jen pro stejně dlouhé řetězce jako u číselných vektorů:

    >> 'Jana'=='Dana'
    ans =
            0        1        1        1
    >> 'Ano'=='Ne'   
    error: operator ==: nonconformant arguments (op1 is 1x3, op2 is 1x2)
    error: evaluating binary operator `==' near line 35, column 6

    Pro srovnávání podle obvyklých představ je k dispozici funkce strcmp:

    >> strcmp('Jana', 'Dana')
    ans = 0

    Jednoduché vyhledávací funkce index a rindex vrací první, respektive poslední pozici řetězce zadaného jako druhý parametr v řetězci zadaném jako první parametr. Pozice se počítají od jedničky:

    >> index('krabice hranice slepice', 'ice')
    ans = 5
    >> rindex('krabice hranice slepice', 'ice')
    ans = 21

    Obdobně funkce findstr vrací vektor všech vyhovujících pozicí:

    >> findstr('abababaq','aba')  
    ans =
            1        3        5
    >> findstr('abababaq','aba',0)
    ans =
            1        5

    Pokud je jako třetí volitelný parametr zadáno číslo 0, pak nejsou povoleny přesahy řetězců (další vyhovující řetězec se hledá až za koncem předchozího nalezeného).

    Funkce substr vrací ze zadaného řetězce podřetězec od dané pozice a dané délky (respektive až do konce, není-li třetí parametr zadán):

    >> substr('stonozka', 4, 5)  % Od čtvrté pozice pět znaků
    ans = nozka

    Funkce strrep odpovídající vzorky v zadaném řetězci nahradí jiným zadaným řetězcem:

    >> strrep('zena Bozena neni zenata', 'zena', 'spor')
    ans = spor Bospor neni sporta

    Konečně funkce split dělí zadaný řetězec na matici podřetězců podle zvoleného vzorku:

    >> split('krabice hranice slepice', 'ice')          
    ans =
    krab 
     hran
     slep

    Zbytek ve zkratce

    Zřejmě nemá smysl zde podrobně rozepisovat zbývající funkce pro práci s řetězci, případný zájemce může navštívit manuál. Proto jen stručný přehled:

    • tolower, toupper - mění velikost písmen
    • dec2base, base2dec - převod mezi mezi desítkovou a zvolenou soustavou
    • ischar - dává odpověd, zda zadaný parametr je skutečně řetězec
    • isletter, isdigit, isspace apod. - vrací matici odpovědí, zda dané znaky v řetězci jsou písmena, čísla, prázdné znaky, ... podobných funkcí je celá řada.

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

    Jaderné noviny – přehled za červenec 2025
    Událo se v týdnu 35/2025
    Týden na ScienceMag.cz: V CERNu potvrdili existenci toponia

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

      všechny statistiky »

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

    Octave - 1 (je to kalkulačka) (první díl)
    <—« Octave - 4 (je to pravda?)
    »—> Octave - 6 (práce se soubory)
    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 - 6 (práce se soubory)
    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ář

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