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 14:33 | Zajímavý projekt

Blender Animation Studio zveřejnilo první epizodu z připravovaného animovaného seriálu The Daily Dweebs o domácím mazlíčkovi jménem Dixey. Ke zhlédnutí také ve 3D s rozlišením 8K.

Ladislav Hagara | Komentářů: 0
včera 12:34 | Komunita

Aktualizovanou počítačovou hru Warhammer 40,000: Dawn of War III v ceně 39,99 eur běžící také na Linuxu lze o víkendu na Steamu hrát zdarma a případně ještě v pondělí koupit s 50% slevou. Do soboty 19:00 lze na Humble Bundle získat zdarma Steam klíč k počítačové hře Sid Meier's Civilization® III v ceně 4,99 eur běžící také ve Wine.

Ladislav Hagara | Komentářů: 0
včera 00:22 | Nasazení Linuxu

Společnost Samsung oznámila, že skrze dokovací stanici DeX a aplikaci Linux on Galaxy bude možno na Samsung Galaxy S8 a S8+ a Galaxy Note 8 provozovat Linux. Distribuce nebyly blíže upřesněny.

Phantom Alien | Komentářů: 10
19.10. 23:55 | Komunita

Společnost Purism na svém blogu oznámila, že její notebooky Librem jsou nově dodávány se zrušeným (neutralized and disabled) Intel Management Engine (ME). Aktualizací corebootu na již prodaných noteboocích lze Management Engine také zrušit. Více v podrobném článku.

Ladislav Hagara | Komentářů: 0
19.10. 21:44 | Nová verze

Organizace Apache Software Foundation (ASF) na svém blogu slaví páté výročí kancelářského balíku Apache OpenOffice jako jejího Top-Level projektu. Při této příležitosti byl vydán Apache OpenOffice 4.1.4 (AOO 4.1.4). Podrobnosti v poznámkách k vydání. Dlouhé čekání na novou verzi tak skončilo.

Ladislav Hagara | Komentářů: 6
19.10. 19:22 | Pozvánky

Již příští týden - 26. a 27. října se v Praze v hotelu Olšanka odehraje OpenWRT Summit. Na webu konference naleznete program a možnost zakoupení lístků - ty stojí 55 dolarů. Čtvrtek bude přednáškový a v pátek se budou odehrávat převážně workshopy a meetingy.

Miška | Komentářů: 1
19.10. 13:44 | Nová verze

Bylo vydáno Ubuntu 17.10 s kódovým názvem Artful Aardvark. Ke stažení jsou Ubuntu Desktop a Server, Ubuntu Cloud Images, Ubuntu Netboot, Kubuntu, Lubuntu a Lubuntu Alternate, Lubuntu Next, Ubuntu Budgie, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio a Xubuntu. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 22
19.10. 13:00 | Komunita

MojeFedora.cz informuje, že Fedora 27 dostane podporu pro AAC. Podpora multimediálních formátů je ve výchozí instalaci Fedory tradičně limitovaná kvůli softwarovým patentům, ale desktopový tým Red Hatu se ji i tak snaží v poslední době co nejvíce rozšířit. Už nějaký čas obsahuje kodeky pro MP3, H.264, AC3 a nyní byl přidán také kodek pro další velmi rozšířený zvukový formát – AAC.

Ladislav Hagara | Komentářů: 2
18.10. 23:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených technologií a otevřeného přístupu na 145. brněnský sraz, který proběhne v pátek 20. října od 18:00 hodin v restauraci Time Out na adrese Novoměstská 2 v Řečkovicích. Jedná se o poslední sraz před konferencí OpenAlt 2017, jež proběhne o víkendu 4. a 5. listopadu 2017 na FIT VUT v Brně. Běží registrace účastníků.

Ladislav Hagara | Komentářů: 0
18.10. 21:44 | Nová verze

Byla vydána verze 5.2.0 multiplatformního virtualizačního nástroje Oracle VM VirtualBox. Jedná se o první stabilní verzi z nové větve 5.2. Z novinek lze zmínit například možnost exportování VM do Oracle Cloudu, bezobslužnou instalaci hostovaného systému nebo vylepšené GUI. Podrobnosti v seznamu změn. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 2
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (10%)
 (1%)
 (1%)
 (1%)
 (75%)
 (12%)
Celkem 145 hlasů
 Komentářů: 7, poslední 19.10. 23:06
    Rozcestník

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

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

    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

    HW novinky: návrat skleněných ploten v HDD
    HW novinky: i Skylake-X s 12 jádry používá levnou teplovodivou pastu
    HW novinky: PCI Express 4.0 prý ještě letos

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

    HW novinky: i Skylake-X s 12 jádry používá levnou teplovodivou pastu
    HW novinky: návrat skleněných ploten v HDD
    Jaderné noviny - 17. 8. 2017: Škálovaní souboru MAINTAINERS v jádře
      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

    Vložit další komentář

    Cubic avatar 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 :)
    xvasek avatar 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.
    Cubic avatar 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 :(
    Marek Stopka avatar 23.1.2006 16:27 Marek Stopka | skóre: 57 | blog: Paranoidní blog | London, United Kingdom
    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.

    Založit nové vláknoNahoru

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