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 04:33 | Humor

    Anthropic patrně omylem zveřejnil celý zdrojový kód svého CLI nástroje Claude Code prostřednictvím přiloženého sourcemap souboru v npm balíčku. Únik odhalil doposud nijak nezveřejněné funkce jako je například režim v utajení, autonomní agent 'KAIROS', orchestrace multi‑agentů, režim snění nebo dokonce virtuální mazlíček Buddy. Zajímavostí je detekce naštvání uživatele pomocí obyčejného regexpu. Anthropic rychle odstranil sourcemap a vydal opravu, nicméně kopie kódu se již stihly na GitHubu rozšířit mezi prostým lidem.

    NUKE GAZA! 🎆 | Komentářů: 1
    včera 14:33 | Humor

    Copilot automaticky vkládal do pull requestů 'propagační tipy', reklamní text se na GitHubu objevil ve více než jedenácti tisících pull requestech. Po vlně kritiky byla tato funkce zablokována a produktový manažer Tim Rogers připustil, že umožnit Copilotovi upravovat cizí pull requesty bez vědomí autorů byla chyba.

    NUKE GAZA! 🎆 | Komentářů: 4
    včera 12:55 | Upozornění

    Je 31. března a tedy Světový den zálohování (World Backup Day). Co by se stalo, kdyby Vám právě teď odešel počítač, tablet nebo telefon, který používáte?

    Ladislav Hagara | Komentářů: 4
    včera 12:44 | Upozornění

    Digitální a informační agentura (DIA) přistupuje ke změně formátu důvěryhodného seznamu České republiky z verze TLv5 na verzi TLv6, která nastane 29. dubna 2026 v 00:00 (CET). Ke změně formátu důvěryhodných seznamů členských států (tzv. Trusted Lists) dochází na základě změn příslušné unijní legislativy. Důvěryhodné seznamy se používají v rámci informačních systémů a aplikací zejména pro účely ověřování platnosti elektronických

    … více »
    Ladislav Hagara | Komentářů: 2
    včera 05:00 | Nová verze

    Rspamd (Wikipedie), tj. open source systému pro filtrování nevyžádané pošty, byl vydán v nové major verzi 4.0.0. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 1
    30.3. 23:11 | Nová verze

    SolveSpace (Wikipedie), tj. multiplatformní open source parametrický 2D/3D CAD, byl vydán v nové verzi 3.2. Přehled novinek v Changelogu na GitHubu. Vyzkoušet lze novou oficiální webovou verzi.

    Ladislav Hagara | Komentářů: 8
    30.3. 18:22 | Pozvánky

    Organizátoři Dne IPv6, tradiční akce věnované tématům spojeným s tímto protokolem, vyhlásili Call for Abstracts. Na webu konference mohou zájemci přihlašovat příspěvky o délce 20 nebo 40 minut či 10minutové lighting talky a to až do 30. dubna. Tvůrci programu uvítají návrhy přednášek z akademického i komerčního sektoru, které mohou být technického i netechnického zaměření. Den IPv6 se letos uskuteční 4. června a místem konání bude i

    … více »
    VSladek | Komentářů: 12
    30.3. 15:00 | Zajímavý software

    Euro-Office (Wikipedie) je evropský fork open source kancelářského balíku OnlyOffice. Za forkem stojí koalice firem IONOS, Nextcloud, Eurostack, XWiki, OpenProject, Soverin, Abilian a BTactic. Cílem je zajistit digitální suverenitu Evropy a snížit závislost na neevropských platformách. Projekt vznikl mimo jiné v reakci na nedávné uzavření cloudové služby OnlyOffice. OnlyOffice obviňuje Euro-Office z porušení licenčních podmínek. Na možné problémy upozorňuje i Collabora Online. Jednostranná změna licence není v pořádku.

    Ladislav Hagara | Komentářů: 27
    30.3. 05:11 | Komunita

    Byly zpracovány a na YouTube zveřejněny videozáznamy jednotlivých přednášek z letošního Installfestu.

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

    Během akce Arduino Days 2026 byl publikován Arduino Open Source Report 2025 (pdf) a oznámeno 7 nových produktů kompatibilních s deskou UNO Q (Arduino USB-C Power Supply, USB-C Cable, USB-C Hub, UNO Media Carrier, UNO Breakout Carrier, Bug Hopper, Modulino LED Matrix).

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (14%)
     (23%)
    Celkem 1196 hlasů
     Komentářů: 29, poslední včera 11:17
    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í | 15906×

    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 ScienceMag.cz: Rychlost rozpínání vesmíru by se mohla měřit i z gravitačních vln
    Týden na ITBiz: AI v simulacích jaderných krizí – Eskalace místo diplomacie
    Týden na ITBiz: Čeští vědci vyvinuli systém, který zvyšuje spolehlivost energetických a komunikačních sítí

    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 - 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.