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 12:33 | Komunita

Příspěvek na blogu Signalu (Wikipedie) informuje o založení neziskové nadace Signal Foundation, jež bude zastřešovat další vývoj tohoto svobodného bezpečného komunikátoru běžícího také na Linuxu (Signal Desktop). Brian Acton, spoluzakladatel WhatsAppu, věnoval nadaci 50 milionů dolarů [Hacker News].

Ladislav Hagara | Komentářů: 1
včera 05:55 | Zajímavý článek

Článek na Fedora Magazine krátce představuje programovací jazyk Rust a několik zajímavých v Rustu naprogramovaných terminálových aplikací. Jedná se o alternativu k příkazu grep ripgrep, moderní barevnou alternativu k příkazu ls exa, příkazem cloc inspirovaný tokei a zvířátko v terminálu ternimal.

Ladislav Hagara | Komentářů: 0
21.2. 23:55 | Zajímavý projekt

Byl spuštěn Humble Classics Return Bundle. Za vlastní cenu lze koupit hry Broken Sword 5 - The Serpent's Curse, Shadowrun Returns a Shadowrun: Dragonfall - Director's Cut. Při nadprůměrné platbě (aktuálně 8,48 $) také Shadowrun: Hong Kong - Extended Edition, Wasteland 2: Director's Cut - Standard Edition, Age of Wonders III a Xenonauts. Při platbě 15 $ a více lze získat navíc Torment: Tides of Numenera a Dreamfall Chapters: The Final Cut Edition.

Ladislav Hagara | Komentářů: 0
21.2. 00:11 | Bezpečnostní upozornění

Vývojáři linuxové distribuce Mageia na svém blogu upozorňují na narušení bezpečnosti Mageia Identity. Narušitel získal přístup k LDAP databázi a zveřejnil jména uživatelů, jejich emailové adresy a haše hesel. Hesla uživatelů byla resetována.

Ladislav Hagara | Komentářů: 3
20.2. 21:55 | Nová verze

Byla vydána verze 2.0.0 nástroje pro záznam a sdílení terminálových sezení asciinema (GitHub). Z novinek je nutno upozornit na nový zpětně nekompatibilní formát záznamu asciicast v2. S novým formátem si poradí nové verze asciinema-playeru a asciinema-serveru [Hacker News].

Ladislav Hagara | Komentářů: 0
20.2. 05:55 | Zajímavý projekt

Dle příspěvku na blogu zaměstnanců CZ.NIC byl spuštěn ostrý provoz služby Honeypot as a Service (HaaS). Zapojit se může kdokoli. Stačí se zaregistrovat a nainstalovat HaaS proxy, která začne příchozí komunikaci z portu 22 (běžně používaného pro SSH) přeposílat na server HaaS, kde honeypot Cowrie (GitHub) simuluje zařízení a zaznamenává provedené příkazy. Získat lze tak zajímavé informace o provedených útocích. K dispozici jsou globální statistiky.

Ladislav Hagara | Komentářů: 12
20.2. 04:44 | Komunita

Před týdnem společnost Feral Interactive zabývající se vydáváním počítačových her pro operační systémy macOS a Linux oznámila, že pro macOS a Linux vydají hru Rise of the Tomb Raider. Včera společnost oznámila (YouTube), že pro macOS a Linux vydají také hru Total War Saga: Thrones of Britannia. Verze pro Windows by měla vyjít 19. dubna. Verze pro macOS a Linux krátce na to.

Ladislav Hagara | Komentářů: 0
19.2. 21:33 | Nová verze

Byla vydána nová major verze 7.10 svobodného systému pro řízení vztahů se zákazníky (CRM) s názvem SuiteCRM (Wikipedie). Jedná se o fork systému SugarCRM (Wikipedie). Zdrojové kódy SuiteCRM jsou k dispozici na GitHubu pod licencí AGPL.

Ladislav Hagara | Komentářů: 0
19.2. 16:44 | Nová verze

Byla vydána nová verze 0.30 display serveru Mir (Wikipedie) a nová verze 2.31 nástrojů snapd pro práci s balíčky ve formátu snap (Wikipedie). Z novinek Miru vývojáři zdůrazňují vylepšenou podporu Waylandu nebo možnost sestavení a spouštění Miru ve Fedoře. Nová verze snapd umí Mir spouštět jako snap.

Ladislav Hagara | Komentářů: 0
19.2. 14:00 | Komunita

Na Indiegogo běží kampaň na podporu Sway Hackathonu, tj. pracovního setkání klíčových vývojářů s i3 kompatibilního dlaždicového (tiling) správce oken pro Wayland Sway. Cílová částka 1 500 dolarů byla vybrána již za 9 hodin. Nový cíl 2 000 dolarů byl dosažen záhy. Vývojáři přemýšlejí nad dalšími cíli.

Ladislav Hagara | Komentářů: 1
Který webový vyhledávač používáte nejčastěji?
 (2%)
 (28%)
 (61%)
 (3%)
 (3%)
 (0%)
 (1%)
 (1%)
Celkem 430 hlasů
 Komentářů: 35, poslední 21.2. 19:51
    Rozcestník

    Octave - 3 (přístup k jednotlivým položkám matice)

    1. 2. 2006 | Jiří Poláček | Programování | 7623×

    Naplnění matice funkcí, rozměry matice, operátor dvojtečka, přístup k jednotlivým složkám vektoru a matice.

    Naplnění matice funkcí

    V minulém díle (Octave - 2 (počítání s maticemi)) jsme si ukázali vytvoření matice ručně - výčtem hodnot. Matici můžeme získat i jinak - Octave disponuje celou řadou funkcí pro tvorbu matic určitého typu. S výjimkou permutace mají všechny níže uvedené funkce dva parametry, kterými říkáme, kolik řádků a kolik sloupců má výsledná matice mít (vhodnými parametry jsou tedy pouze kladná čísla). Pokud uvedeme pouze jeden parametr, výsledná matice bude čtvercová. Funkce jsou tedy následující:

    • zeros - vytvoří matici se samými nulami
    • ones - vytvoří matici se samými jedničkami
    • eye - vytvoří jednotkovou matici
    • rand, randn - vytvoří matici s náhodnými čísly v intervalu od nuly do jedné (rovnoměrné nebo normální rozložení)
    • randperm(n) - vytvoří vektor s čísly od 1 do n, náhodně permutovaný
    • tril, triu - podle hlavní diagonály extrahuje dolní, respektive horní trojúhelníkovou matici ze zadané matice. Druhý volitelný parametr posouvá dělící diagonálu.

    Příklady pro představu:

    >> zeros(2,4)
    ans =
      0  0  0  0
      0  0  0  0
    >> 4 * ones(2,3)
    ans =
      4  4  4
      4  4  4
    >> eye(3)
    ans =
      1  0  0
      0  1  0
      0  0  1
    >> randn(2,5)
    ans =
       1.324077  -0.408510   1.516083  -0.372057  -0.138184
       0.787720  -0.186652   0.079070   0.056826   1.679005
    >> floor(rand(4,6)*20)+1 % Chceme celá čísla od 1 do 20
    ans =
       3  10   2   6   5  16
       6   4  10   8  19   9
      18  20   1  18  13   8
      17   8  13   7  12  20
    >> randperm(8)
    ans =
      4  6  5  7  2  8  3  1
    >> tril(ones(3))
    ans =
      1  0  0
      1  1  0
      1  1  1
    >> triu(ones(5),-2)
    ans =
      1  1  1  1  1
      1  1  1  1  1
      1  1  1  1  1
      0  1  1  1  1
      0  0  1  1  1

    Octave také obsahuje funkce pro výrobu speciálních matic, jakými jsou například Hankelova, Hilbertova, Sylvesterova či Toeplitzova matice. Popis parametrů je v nápovědě.

    Rozměry matice

    Funkce size s parametrem nějaké matice vrací dvouprvkový vektor, ve kterém první hodnota odpovídá počtu řádků dané matice a druhá počtu sloupců:

    >> size(ones(5))
    ans =
      5  5

    Funkce rows a columns vrací pouze odpovídající složku z dvouprvkového výsledku funkce size, tj. počet řádků, respektive počet sloupců z dané matice:

    >> rows([1:5]')
    ans = 5
    >> columns(zeros(4,60))
    ans = 60

    Počet řádků a počet sloupců nějaké matice tedy lze do proměnných uložit dvěma následujícími ekvivalentními způsoby:

    >> Matice=zeros(5,20);
    >> [radky, sloupce]=size(Matice)
    radky = 5
    sloupce = 20
    >> radky=rows(Matice), sloupce=columns(Matice)
    radky = 5
    sloupce = 20

    Funkce length vrací větší z hodnot vrácených funkcí size, typicky se používá pro výpočet počtu prvků v nějakém vektoru, přičemž se nemusíme starat o to, zda je tento vektor řádkový či sloupcový:

    >> length([1 2 3 8])
    ans = 4

    Operátor dvojtečka

    Znak dvojtečka slouží k zhuštěnému zápisu řádkového vektoru obsahujícího nějakou aritmetickou posloupnost. Obecně v zápisu figurují tři čísla oddělená dvojtečkami. První z nich představuje počáteční člen posloupnosti, druhé velikost kroku a třetí poslední přípustný člen řady. Více to bude patrno z příkladů:

    >> 1:1:6
    ans =
      1  2  3  4  5  6

    Posloupnost čísel od jedné do šesti s krokem jedna:

    >> 1.5:2.5:7.9
    ans =
      1.5000  4.0000  6.5000

    Následující potenciální člen posloupnosti 6,5 + 2,5 = 9 již je číslo větší jak nejvyšší přípustný člen posloupnosti, tj. číslo 7,9, proto již v posloupnosti obsažen není. Všimněme si, že v zápisu samozřejmě lze pracovat s reálnými čísly, nejenom s celými.

    >> 5:-1:-1
    ans =
       5   4   3   2   1   0  -1
    >> 0:8
    ans =
      0  1  2  3  4  5  6  7  8

    V případě, že není krok uveden - zápis sestává pouze ze dvou čísel oddělených jednou dvojtečkou - považuje se za krok hodnota 1. Zápis posloupnosti s dvojtečkovou notací se používá zejména při indexovaném přístupu k obsahu matic, lze tak snadno vybrat například druhý až jedenáctý řádek dané matice. Více viz následující odstavce.

    Přístup k jednotlivým složkám vektoru

    Nezřídka se může stát, že při výpočtu je potřeba pracovat pouze s určitými prvky nějakého vektoru či matice, nikoliv s celým obsahem proměnné najednou. V kulatých závorkách uvedených bezprostředně za názvem proměnné lze uvést index prvku, s kterým se má pracovat:

    >> X=5:-1:-4
    X =
       5   4   3   2   1   0  -1  -2  -3  -4
    >> X(1)
    ans = 5
    >> X(4)
    ans = 2
    >> X(end)
    ans = -4

    Zadáním jednoho čísla se odkazujeme na pozici v daném vektoru. Pozice se číslují od jedničky, na poslední pozici se lze odvolat pomocí klíčového slůvka end. Jedním výběrem však pozic můžeme vybrat více - výsledkem je „podvektor“ složený z prvků vybraných z původního vektoru v uvedeném pořadí:

    >> X(3:7)
    ans =
       3   2   1   0  -1
    >> X(end:-2:1)
    ans =
      -4  -2   0   2   4
    >> X([8,5,7,1])
    ans =
      -2   1  -1   5
    >> X([9,9,9,1,1])
    ans =
      -3  -3  -3   5   5

    Poslední uvedený příklad ukazuje, že není problémem vybrat prvek na zvolené pozici vícekrát - při budování výsledného vektoru se právě tolikrát a právě v takovém pořadí vybrané prvky objeví. Za povšimnutí stojí též fakt, že zadání více pozic je nutno zapsat jako vektor těchto pozic (tj. v hranatých závorkách), na úrovni kulatých závorek lze totiž u vektoru zadat pouze jeden parametr indexování.

    Přístup k jednotlivým složkám matice

    Přístup k prvkům matice analogicky odpovídá přístupu ke složkám vektoru s tím rozdílem, že je nutno zadat indexy dva - řádkový a sloupcový oddělené čárkou (no, není to tak úplně pravda, ale to se ukáže až později):

    >> M=fix(rand(5)*21)-10;
    
    % Vyber prvek z druhého řádku a čtvrtého sloupce
    >> M(2,4)
    ans = -9
    
    % Vyber první-až-třetí řádek průnik třetí-až-pátý sloupec
    >> M(1:3,3:5)
    ans =
        0    7   10
       10   -9   -5
       -2   -8   -1
    
    % Vyber postupně pátý, třetí a první řádek skrze všechny sloupce
    >> M([5,3,1],:)
    ans =
       -5    5   -1   -5   -2
        5   -7   -2   -8   -1
       -8   -2    0    7   10

    V případě, kdy chce uživatel vybrat všechny řádky respektive všechny sloupce, stačí na místě příslušného indexu uvést pouze znak „:“ namísto ekvivalentního 1:end.

    Výběr určitých prvků z matice lze činit také proto, abychom tyto prvky nahradili jinými hodnotami. Oblast výběru svými rozměry musí vždy odpovídat rozměrům vkládané matice:

    >> M(1,2)=-4
    >> M(1,:)=M(3,:)
    >> M([2,4],[2,4])=ones(2)
    >> M(:,2)=[]

    První příkaz nahradil prvek v prvním řádku a druhém sloupci hodnotou -4; druhý zkopíroval třetí řádek na první řádek; třetí nahradil prvky v matici ve druhém a čtvrtém řádku i sloupci jedničkami; poslední pak smazal druhý sloupec - mazání se provádí vložením prázdné matice (viz minulý díl). Aby byla zachována konzistence matice, je nutno mazat vždy celé řádky či sloupce.

    Příště

    Příští díl se bude věnovat relačním a logickým operátorům v Octave.

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

    Jaderné noviny – 18. 1. 2018: Přehled několika svobodných fuzzovacích nástrojů
    MapTiler – proměňte obrázek v zoomovatelnou mapu
    Jaderné noviny – 11. 1. 2018: Nové jaderné rozhraní pro dotazování

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

    MapTiler – proměňte obrázek v zoomovatelnou mapu
    Jaderné noviny – 25. 1. 2018: Datová struktura XArray
    Týden na ScienceMag.cz: Kvantová komunikace bez přenosu částic
      všechny statistiky »

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

    Octave - 1 (je to kalkulačka) (první díl)
    <—« Octave - 2 (počítání s maticemi)
    »—> Octave - 4 (je to pravda?)
    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 - 4 (je to pravda?)
    Octave - 5 (práce s řetězci)
    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ář

    1.2.2006 10:45 herhor
    Rozbalit Rozbalit vše Re: Octave - 3 (přístup k jednotlivým položkám matice)
    Já jsem tedy jednoznačně proti tomu, aby tady vycházely tutoriály pro idioty. Uvod do Octave pro nezasvěcené má vypadat nějak takhle http://www.root.cz/clanky/octave-programovaci-jazyk-pro-neprogramatory/. Pro koho je určené tohle vážně nechápu.
    1.2.2006 11:04 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: Octave - 3 (přístup k jednotlivým položkám matice)
    Každý někdy začínal. Připadá-li ti článek příliš podrobný nebo jednoduchý, nelze poradit nic jiného, než abys ho nečetl. Nikdo tě nenutí. Buď ale tolerantní a ponech ho nám ostatním.
    1.2.2006 12:21 coccyx
    Rozbalit Rozbalit vše Re: Octave - 3 (přístup k jednotlivým položkám matice)
    mne sa tento serial celkom paci a urcite si nemyslim ze dobry clanok by mal byt suhrn linkov na manual programu. A celkom by som bol rad keby po dokonceni serialu vysla aj nejaka kompaktna PDF verzia.
    1.2.2006 12:42 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: Octave - 3 (přístup k jednotlivým položkám matice)
    Po dokončení bude celý seriál v jednom z vydání PDF Abíčka.
    1.2.2006 12:42 jam001 | skóre: 19
    Rozbalit Rozbalit vše Re: Octave - 3 (přístup k jednotlivým položkám matice)
    Nieco taketo nestaci? http://www.octave.org/doc/index.html
    menphis avatar 1.2.2006 12:45 menphis | skóre: 22 | blog: menphis_blog
    Rozbalit Rozbalit vše Re: Octave - 3 (přístup k jednotlivým položkám matice)
    Jj, taky si myslim,ze by clanek mohl byt trochu odborneji pojat. Na 3. dil je prace s prvky hodne malo!
    1.2.2006 12:25 coccyx
    Rozbalit Rozbalit vše dlhy vypis
    by som sa chcel spytat ako sa da vypnut funkcia, ktora umoznuje prezeranienie vypisu dlhych vysledkov, mi to pripada ako prikaz more ale ked mam program v skripte mi vadi ze program zastavuje na tomto vypise.
    1.2.2006 13:16 jam001 | skóre: 19
    Rozbalit Rozbalit vše Re: dlhy vypis
    Bohuzial nerozumiem tvojej otazke (vlastne tam ani ziadna otazka nie je).

    Nepomoze ti ';' na konci kazdeho prikazu? To sposobi, ze vysledok prikazu nie je vypisany.
    1.2.2006 14:26 coccyx
    Rozbalit Rozbalit vše Re: dlhy vypis
    no praveze ja som chcel ten vysledok vidiet, len aby sa to nezastavovalo na tom vypise, napriklad v koctave si mozem vyskrolovat vsetky vysledky ...

    riesenie: page_screen_output=0

    -- Built-in Variable: page_screen_output If the value of `page_screen_output' is nonzero, all output intended for the screen that is longer than one page is sent through a pager. This allows you to view one screenful at a time. Some pagers (such as `less'--see *Note Installation::) are also capable of moving backward on the output. The default value is 1.
    1.2.2006 22:23 GeBu | skóre: 27 | blog: zápisky
    Rozbalit Rozbalit vše Re: Octave - 3 (přístup k jednotlivým položkám matice)
    Nevíte někdo jestli neexistuje manuál v češtině?

    Založit nové vláknoNahoru

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