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í
×

    8.11. 00:33 | Nová verze

    Byla vydána OpenIndiana 2026.10. Unixový operační systém OpenIndiana (Wikipedie) vychází z OpenSolarisu (Wikipedie).

    Ladislav Hagara | Komentářů: 13
    8.11. 00:22 | IT novinky

    Americký výrobce polovodičů onsemi (ON Semiconductor) zrušil plány na rozšíření výroby v rožnovském závodě v Česku za dvě miliardy dolarů (podle aktuálního kurzu zhruba 43,5 mld. Kč). Důvodem je vývoj na trhu.

    Ladislav Hagara | Komentářů: 28
    7.11. 13:00 | Bezpečnostní upozornění
    Nové vydání zlib opravuje několik problémů při kompresi a dekompresi dat, přetečení bufferů, čtení mimo vyhrazenou paměť, únik neinicializovaných dat. Zvlášť významné jsou chyby v inflateGetDictionary(), inflateSync() a gzwrite(), které mohou způsobit poškození paměti. Vysoká relevance - zlib používá řada systémových i aplikačních komponent.
    vencour | Komentářů: 2
    7.11. 12:25 | Bezpečnostní upozornění
    Digicert hlásí neoprávněné čtení archivních zákaznických údajů. Došlo k němu po migraci z února 2025, po níž se interní systém, dříve dostupný jen přes VPN, stal přístupným z internetu. Chyba v oprávněních umožnila nově vytvořeným účtům číst archivní záznamy. K přístupu k datům mělo dojít mezi 27. červnem a 2. červencem 2026. DigiCert neoprávněné čtení potvrdil až 19. října 2026. Problém zpočátku vyhodnotil jako tvorbu účtů, ne jako … více »
    vencour | Komentářů: 1
    7.11. 04:44 | Pozvánky

    O víkendu probíhá na FIT VUT v Brně konference OpenAlt 2026 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma. Přednášky lze sledovat i online na VHSky a YouTube.

    Ladislav Hagara | Komentářů: 0
    7.11. 02:11 | IT novinky

    Qualcomm uzavřel víceletou dohodu se SpaceX. Bude dodávat rádiové technologie, baseband jednotky a software pro plánovanou pozemní 5G síť Starlink Mobile. Výstavba má zahrnovat desítky tisíc základnových stanic v USA. Zahájení nasazování se očekává v roce 2027. Qualcomm dohodu označuje za svůj dosud největší 5G kontrakt.

    vencour | Komentářů: 0
    7.11. 02:00 | IT novinky

    Google rozšířil Cloud Vulnerability Reward Program. Nově nabízí odměnu až 250 tisíc dolarů za vysoce závažné architektonické bezpečnostní chyby označované jako Root-in-Cloud.

    vencour | Komentářů: 0
    6.11. 12:22 | IT novinky

    V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.

    Ladislav Hagara | Komentářů: 5
    6.11. 04:55 | Nová verze

    Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.

    Ladislav Hagara | Komentářů: 3
    6.11. 03:22 | Nová verze

    Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (8%)
     (7%)
     (4%)
     (21%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 3032 hlasů
     Komentářů: 36, poslední včera 22:38
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Octave - 2 (počítání s maticemi)

    23. 1. 2006 | Jiří Poláček | Programování | 16202×

    Historie a vyhodnocování příkazů, základní maticové operace, skaláry.

    V hned druhém pokračování povídání o systému Octave vyjde najevo, proč Matlab získal své jméno jako zkratku z MATrix LABoratory - laboratoř pro práci s maticemi. Než se však vrhneme na násobení matic, povíme si pár slov k historii příkazů a jejich vyhodnocování.

    Historie příkazů

    Asi nepřekvapí, ale určitě ani nezarmoutí fakt, že Octave disponuje vestavěnou historií příkazů - pomocí kurzorových šipek nahoru a dolů lze listovat seznamem dříve zadaných příkazů, které lze editovat a opravené nechat spočítat znovu. V linuxových verzích Octave lze také zpětně hledat v historii příkazů přes klávesové zkratky Ctrl-R a Ctrl-S:

    >>
    (reverse-i-search)`sin': (sin(x))^2

    Více příkazů najednou, komentáře

    V Octave je možné zapsat a nechat vyhodnotit více výrazů najednou - píšeme je za sebe na řádek, přičemž v úvahu přichází dva oddělovače, čárka a středník:

    >> A=1+1, B=3*4; C=8/4
    A = 2
    C = 2
    >> B
    B = 12

    V obou případech se výraz vyhodnotí, avšak pouze při ukončení čárkou se též vypíše výsledek. Neuvedení oddělovače za posledním příkazem na řádce je ekvivalentní se zakončení výrazu čárkou, tj. výsledek se vypíše. Skutečnost, že se v příkladě provedl i příkaz ukončený středníkem, dokazuje výraz, kdy jsme si nechali vypsat obsah proměnné B. Středníkem ukončujeme zejména příkazy v programech, které vrací „nezajímavé“ mezivýsledky výpočtu. Chceme-li zapsat výraz či více výrazů na více řádků, můžeme s úspěchem použít znak zpětné lomítko „\“ následovaný znakem nový řádek (tj. stisknutí klávesy Enter) - v zápisu příkazu pokračujeme na dalším řádku:

    >> 1 + \
    > 2 \
    > + 3
    ans = 6

    Speciální význam v Octave má také znak procento „%“. Uvozuje komentář - jinými slovy vše, co bude zapsáno za tímto znakem na stejném řádku, Octave ignoruje. Komentáře slouží zejména k lepší orientaci v programech uživatelem:

    >> c=(a^2 + b^2)^(1/2) % Zde využíváme Pythagorovy věty

    Proměnné jako matice

    Pro výpis uživatelem vytvořených proměnných lze kromě příkazu who použít také příkaz whos, který vrací podrobnější informace:

    >> whos
           prot    type    rows   cols  name
           ====    ====    ====   ====  ====
           rwd     scalar    1     1     P
           rwd     scalar    1     1     p

    Pro nás jsou teď zajímavé sloupce rows a cols udávající počet řádků a sloupců proměnné. Jak již bylo naznačeno v úvodu, Octave podle vzoru Matlabu chápe každou proměnnou jako matici určité velikosti. Proměnné obsahující jedno číslo jsou tak brány jako matice velikosti 1×1 - s těmi se však počítá úplně stejně jako s normálními čísly. Pokud budeme chtít pracovat s maticemi o větším počtu řádků či sloupců, přijdou na řadu hranaté závorky:

    >>M=[0 1 2;1,2,3
    > 4 5,6]
    M =
      0  1  2
      1  2  3
      4  5  6

    Při takovémto zadávání matice na příkazové řádce hranaté závorky vymezují prostor pro zápis jejího obsahu, hodnoty na řádku se oddělují mezerou nebo čárkou, řádky pak středníkem nebo novým řádkem (klávesou Enter - do výskytu uzavírající závorky Octave výraz nevyhodnocuje).

    Matici lze skládat také z „větších“ objektů, než jsou skaláry, tj. z vektorů a menších matic. Při zadávání je pouze nutno dbát na to, aby ve výsledku měla matice stejný počet sloupců v každém řádku, tj. aby někde něco nechybělo či nepřebývalo:

    >> N=[1 2;3] error: number of columns must match (1 != 2)

    Nyní složme velkou matici ze tří menších objektů:

    >> A=[1 2; 3 4; 5 6], B=[-1 -3; 9 9], V=[0, 50]
    A =
      1  2
      3  4
      5  6
    B =
      -1  -3
       9   9
    V =
       0  50
    >> VelkaMatice = [A, [B; V]]
    VelkaMatice =
        1    2   -1   -3
        3    4    9    9
        5    6    0   50

    Z podstaty věci je možné (a formálně korektnější) psát i samostatná čísla v maticových závorkách:

    >> [6]*[10]
    ans = 60

    Pro přehlednost a úsporu psaní si je však každý rád odpustí, jak tomu je v ostatních příkladech v tomto textu. Je také možné vytvořit - na první pohled poněkud překvapivě - prázdnou matici, která má nulový počet řádků a sloupců:

    >> N=[]
    N = [](0x0)

    Prázdné matice mají své uplatnění při rušení řádků či sloupců ve větších maticích, viz dále.

    Základní maticové operace

    Podle očekávání Octave umí s maticemi nativně provádět běžné numerické operace, tj. zejména velikostně si odpovídající matice sčítat, respektive odčítat a násobit:

    >> [1 2;-3 -2] + [-1,-3;4,3]
    ans =
       0  -1
       1   1
    >> [4;-2] * [-1,2]
    ans =
      -4   8
       2  -4

    Nechybí ani možnost umocňovat matici reálným číslem; významná je zejména operace umocňování na minus prvou (M-1), kterou získáme matici inverzní k původní matici:

    >> M=[-1 0 2; 4 2 1; -1 -1 -2]; M^-1
    ans =
       3   2   4
      -7  -4  -9
       2   1   2
    >> M * M^-1
    ans =
      1  0  0
      0  1  0
      0  0  1

    K základním maticovým operacím patří také transpozice, tj. přeměna řádků na sloupce a naopak. V Octave ji vyznačujeme apostrofem - „'“:

    >> M'
    ans =
      -1   4  -1
       0   2  -1
       2   1  -2

    Octave také umí matice dělit, a to hned dvěma způsoby: levostranně pomocí operátoru „\“ a pravostranně pomocí „/“. Formálně to u čtvercových regulárních matic odpovídá násobení jedné matice s druhou inverzní, tj. A\B ≈ A-1·B a A/B ≈ A·B-1. Jelikož výpočet probíhá přímo, je možné levostranně dělit matice se stejným počtem řádků a pravostranně matice se stejným počtem sloupců:

    >> [-1 -4 0; 2 -3 1] \ [2 3; -1 -1]
    ans =
      -0.81159  -1.05797
      -0.29710  -0.48551
      -0.26812  -0.34058
    >> [-1 -4; 2 -3 ] / [2 3; -1 -1; 6 -7]
    ans =
      -0.833333   0.333333   0.166667
      -0.111390   0.033501   0.376047

    Dělení matic se využívá například při řešení soustavy lineárních rovnic. Pro názornost dodejme ještě, že levostranné dělení běžných čísel odpovídá zápisu zlomku, kdy nejdřív uvedeme jmenovatele a teprve poté čitatele:

    >> 5 \ 35
    ans = 7

    Pozor na to, že znak zpětné lomítko se také používá pro zápis výrazu/výrazů na vícero řádků, jak již bylo uvedeno dříve.

    Matice a skalár, operace po prvcích

    Podle očekávání se také Octave chová při operacích s maticemi a skaláry - operace se provede se skalárem a s každým prvkem matice, výsledkem je matice stejných rozměrů. Například násobení matice skalárem a součet matice a skaláru:

    >> 2 * [1,2;-2,4]
    ans =
       2   4
      -4   8
    >> [1,2;-2,4] + 4
    ans =
      5  6
      2  8

    Někdy je zapotřebí u násobení matic provést tuto operaci tzv. po prvcích, tj. stejným způsobem, jak se provádí součet matic. Násobit po prvcích je možno pouze matice se stejným počtem řádků a sloupců a výsledek je opět stejně rozměrná matice s odpovídajícími výsledky na daných pozicích. Násobení po prvcích dáme najevo předřazením symbolu tečka před vlastní symbol násobení - hvězdičku:

    >> [1 -1; 2 3] .* [7 5; 1 -1]
    ans =
       7  -5
       2  -3

    Porovnejte s výsledkem standardního násobení matic:

    >> [1 -1; 2 3] * [7 5; 1 -1]
    ans =
       6   6
      17   7

    Analogickým způsobem lze pomocí tečky před vlastním operátorem zařídit též dělení a umocňování po prvcích. Tečku lze zapsat i před sčítání a odečítání, z praktického hlediska to ale nemá význam - tyto operace se provádí pouze v režimu „po prvcích“:

    >> [4 9; 12 -27] ./ [2 3; 6 9]
    ans =
       2   3
       2  -3
    >> [1 -1; 2 3].^3
    ans =
        1   -1
        8   27

    Pro srovnání:

    >> [1 -1; 2 3]^3
    ans =
       -9  -11
       22   13

    Funkce pro práci s maticemi

    Nakonec uveďme pár základních funkcí, které se nám při práci s maticemi mohou hodit:

    • inv - počítá inverzní matici, totéž, co umocnění na -1
    • det - determinant matice
    • rank - hodnost matice
    • rot90 - otáčí matici o 90 stupňů, je-li druhý parametr -1, tak ve směru hodinových ručiček, hodnota 1 znamená proti směru hodinových ručiček:
    >> rot90([1 2; 3 4],-1)
    ans =
      3  1
      4  2
    >> rot90([1 2; 3 4],1)
    ans =
      2  4
      1  3

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

    Týden na ITBiz: Více než polovina českých firem čelila v posledním roce kyberútoku
    Týden na ITBiz: Do roku 2028 bude na jednoho prodejce připadat 10 agentů AI
    Týden na ScienceMag.cz: Nově připravená komplexní sloučenina zpochybňuje pravidlo 18 elektronů

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

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

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

    Octave - 1 (je to kalkulačka) (první díl)
    <—« Octave - 1 (je to kalkulačka)
    »—> Octave - 3 (přístup k jednotlivým položkám matice)
    Octave - 16 (a co dál?) (poslední díl)

    Související články

    Octave - 1 (je to kalkulačka)
    Octave - 3 (přístup k jednotlivým položkám matice)
    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

    Diskuse byla administrátory uzamčena

    23.1.2006 12:55 Cubic | skóre: 24 | blog: obcasne_vyplody | Essex
    Rozbalit Rozbalit vše Re: Octave - 2 (počítání s maticemi)
    musim pochvalit clanek, sice pro me prisel pozde protoze jsem potreboval matlab minulej rok a kdybych vedel o tomhle tak bych kvuli zapoctu neklesal do moralniho bahna a neistaloval ileg. kopii matlabu, ale stejne je prinosny treba pro budouci generace :)
    23.1.2006 14:06 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Octave - 2 (počítání s maticemi)
    Matlab ve školní licenci umožňuje (snad) používání verze stejné jako ve škole studentům - takžes možná do bahna ilegality nespadnul. :) Teda aspoň já jsem takto licenci řešil, ale teďka už si nevzpomínám jestli u Matlabu nebo Maple a jestli je to generální pardon nebo jestli o to musí škola nějak usilovat nebo něco dokupovat.
    23.1.2006 17:17 Cubic | skóre: 24 | blog: obcasne_vyplody | Essex
    Rozbalit Rozbalit vše Re: Octave - 2 (počítání s maticemi)
    to by musel byt skolni(katedrovy) licencni server dostupny na kolejich :(
    23.1.2006 16:27 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
    Rozbalit Rozbalit vše Re: Octave - 2 (počítání s maticemi)
    Poklud vím, tak kámoš používá stejnou verzi matlabu jako mají ve škole legálně. (Na školní licenci)
    24.1.2006 09:42 anicka | blog: ze_zivota
    Rozbalit Rozbalit vše Re: Octave - 2 (počítání s maticemi)
    Zas o tolik jsi nepřišel. Kdykoliv si chci ušetřit práci a spočítat domácí úkol v octave, mám pak chuť si radši dát pár facek, protože vždycky najdu další bug. A protože má práce spočívá mimo jiné i v tom, aby nám octave v distribuci fungovalo, spoustu práce si tím přidělám. Nikdy jsem nemyslela, že se začnu učit Fortran 77, ale bohužel není vyhnutí.

    Pokud jde o práci s maticemi, daleko příjemnější a spolehlivější je PDL, to nefunguje pořádně jenom na PPC.
    ^D
    28.1.2006 20:38 Zdeněk Hurák | skóre: 7
    Rozbalit Rozbalit vše Re: Octave - 2 (počítání s maticemi)
    Myslím, že zase tak hrozná Octave není.

    A že existuje jiný balík, který Ti sedí více, to je přece super. Jen ale k těm novým a jeětě novějším, lepším a ještě lepčejším balíkům musím dodat, že co dnes rozhoduje o tom, zda se balík tohoto typu uchytí mezi běžnými uživateli, je množství externích aplikačních knihoven (toolboxů), a těch má Octave v Octave-forge docela dost (zpracování signálů, obrazu, návrh regulátorů, statistika, ...). Z F&OS projektů snad stojí za zmínku ještě Scilab (i kdyz tam je ta licence podivna) a na statistiku orientované R, a tím to z tohoto pohledu končí, mám dojem.
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.