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 14:15 | Komunita

Daniel Stenberg, autor nástroje curl, na svém blogu oznámil, že obdržel letošní Polhemovu cenu, kterou uděluje Švédská inženýrská asociace za „technologickou inovaci nebo důvtipné řešení technického problému“.

marbu | Komentářů: 3
dnes 13:40 | Pozvánky

Cílem Social Good Hackathonu, který se uskuteční 21. a 22. října v Brně, je vymyslet a zrealizovat projekty, které pomůžou zlepšit svět kolem nás. Je to unikátní příležitost, jak představit nejrůznější sociální projekty a zrealizovat je, propojit aktivní lidi, zástupce a zástupkyně nevládních organizací a lidi z prostředí IT a designu. Hackathon pořádá brněnská neziskovka Nesehnutí.

… více »
Barbora | Komentářů: 1
dnes 00:44 | Pozvánky

V sobotu 21. října 2017 se na půdě Elektrotechnické fakulty ČVUT v Praze uskuteční RT-Summit – setkání vývojářů linuxového jádra a uživatelů jeho real-time verze označované jako preempt-rt.

… více »
Pavel Píša | Komentářů: 6
včera 23:44 | Bezpečnostní upozornění

V Linuxu byla nalezena bezpečnostní chyba CVE-2017-15265 zneužitelná k lokální eskalaci práv. Jedná se o chybu v části ALSA (Advanced Linux Sound Architecture).

Ladislav Hagara | Komentářů: 1
včera 22:44 | Komunita

Greg Kroah-Hartman informuje na svém blogu, že do zdrojových kódu linuxového jádra bylo přidáno (commit) prohlášení Linux Kernel Enforcement Statement. Zdrojové kódy Linuxu jsou k dispozici pod licencí GPL-2.0. Prohlášení přidává ustanovení z GPL-3.0. Cílem je chránit Linux před patentovými trolly, viz například problém s bývalým vedoucím týmu Netfilter Patrickem McHardym. Více v často kladených otázkách (FAQ).

Ladislav Hagara | Komentářů: 4
včera 22:04 | Pozvánky

Rádi bychom vás pozvali na přednášku o frameworku Avocado. Jedná se o testovací framework další generace, inspirovaný Autotestem a moderními vývojovými nástroji, jako je třeba git. Přednáška se bude konat 23. října od 17 hodin na FEL ČVUT (Karlovo náměstí, budova E, auditorium K9 – KN:E 301). Více informací na Facebooku.

… více »
mjedlick | Komentářů: 0
včera 21:44 | Bezpečnostní upozornění

Nový útok na WPA2 se nazývá KRACK a postihuje prakticky všechna Wi-Fi zařízení / operační systémy. Využívá manipulace s úvodním handshake. Chyba by měla být softwarově opravitelná, je nutné nainstalovat záplaty operačních systémů a aktualizovat firmware zařízení (až budou). Mezitím je doporučeno používat HTTPS a VPN jako další stupeň ochrany.

Václav HFechs Švirga | Komentářů: 3
15.10. 00:11 | Zajímavý projekt

Server Hackaday představuje projekt RainMan 2.0, aneb jak naučit Raspberry Pi 3 s kamerovým modulem pomocí Pythonu a knihovny pro rozpoznávání obrazu OpenCV hrát karetní hru Blackjack. Ukázka rozpoznávání karet na YouTube. Zdrojové kódy jsou k dispozici na GitHubu.

Ladislav Hagara | Komentářů: 0
14.10. 15:11 | IT novinky

Online obchod s počítačovými hrami a elektronickými knihami Humble Bundle byl koupen společností IGN. Dle oficiálních prohlášení by měl Humble Bundle dále fungovat stejně jako dosud.

Ladislav Hagara | Komentářů: 8
14.10. 06:00 | Zajímavý článek

Brendan Gregg již v roce 2008 upozornil (YouTube), že na pevné disky se nemá křičet, že jim to nedělá dobře. Plotny disku se mohou rozkmitat a tím se mohou prodloužit časy odezvy pevného disku. V září letošního roku proběhla v Buenos Aires konference věnovaná počítačové bezpečnosti ekoparty. Alfredo Ortega zde demonstroval (YouTube, pdf), že díky tomu lze pevný disk použít také jako nekvalitní mikrofon. Stačí přesně měřit časy odezvy

… více »
Ladislav Hagara | Komentářů: 9
Těžíte nějakou kryptoměnu?
 (6%)
 (2%)
 (15%)
 (76%)
Celkem 720 hlasů
 Komentářů: 24, poslední 27.9. 08:30
    Rozcestník

    Octave - 4 (je to pravda?)

    14. 2. 2006 | Jiří Poláček | Programování | 6103×

    Relační a logické operátory, jednoduché testovací funkce a hledání prvků v maticích.

    Relační operátory

    Vyhodnocením nějakého výrazu v Octave může být také odpověď ano/ne, pravda či nepravda. Typicky lze tohoto dosáhnout srovnáním dvou čísel pomocí relačních operátorů:

    >> 4 > 2
    ans = 1
    >> 10 <= 1
    ans = 0

    Kladnou odpověď, tedy hodnotu pravda, Octave reprezentuje jako číslo 1, zápornou odpověď neboli nepravdu, pak jako číslo 0. Uveďme si přehled dostupným relačních operátorů v Octave:

    a == b a je rovno b
    a ~= b
    a != b
    a <> b
    a je různé od b
    a < b a je menší jak b
    a > b a je větší jak b
    a <= b a je menší rovno b
    a >=b a je větší rovno b

    Jak vidno, pro zapsání nerovnosti máme k dispozici hned tři různé možnosti. Na rozdíl od Matlabu nejsou v Octave k  dispozici ekvivalentní srovnávací funkce jako eq, lt, ge apod. (tyto funkce nicméně mohou být v Octave dostupné po instalaci rozšíření, které se snaží o větší kompatibilitu mezi těmito systémy).

    Srovnávat lze také celé matice, pokud jsou rozměrově stejné. Výsledkem je stejně velká matice odpovědí - srovnání probíhá prvek po prvku:

    >> A=[1 2; 3 4]; B=[1 1; 4 4]; A<B
    ans =
      0  0
      1  0

    Výsledek lze číst tak, že pouze ve druhém řádku a prvním sloupci je hodnota v matici A ostře menší než v matici B.

    Logické operátory

    S hodnotami pravda a nepravda lze také pracovat při logických operacích. V těchto případech je číslo nula vždy chápáno jako nepravda a jakékoliv jiné, tj. nenulové číslo jako pravda. K dispozici pak máme logický součin, logický součet a negaci:

    >> 0 & 1
    ans = 0
    >> 0 | 1
    ans = 1
    >> ~6,!(!6)
    ans = 0
    ans = 1

    Pro negaci lze použít symbol vlnovka (tilda) nebo vykřičník. Souhrnně tedy:

    x & y x a zároveň y
    x | y x nebo y
    ~x
    !x
    negace x

    Ani tentokrát nejsou v Octave po vzoru Matlabu ekvivalentní funkce and, or a not. Existuje však funkce xor pro exkluzivní nebo:

    >> xor(1,1)
    ans = 0

    K dispozici jsou též operátory pro neúplné vyhodnocování logického součinu a součtu, kdy vyhodnocování skončí v okamžiku, kdy je již znám výsledek na základě části výrazu. Jedná se vlastně o zdvojené symboly pro tyto operace:

    >> 0 && (4 < 5)
    ans = 0
    >> 1 || (4 < 5)
    ans = 1

    Ani v jednom z těchto příkladů se nevyhodnocoval výraz 4 < 5, neboť výsledek celého výrazu je jasný již z první části.

    Konečně stejně jako u relačních operátorů lze logickými operátory spojovat celé matice, pokud mají stejné rozměry:

    >> A=[1;1;0;0]; B=[1;0;1;0]; C=[A, B, A&B, A|B, xor(A,B)]
    C =
      1  1  1  1  0
      1  0  0  1  1
      0  1  0  1  1
      0  0  0  0  0

    Dodejme ještě, že v Octave existují dvě konstanty true a false (s hodnotami 1 a 0), s kterými lze v logických výrazech pracovat.

    Jednoduché testovací funkce

    Octave obsahuje celou řadu funkcí (s jménem obvykle začínajícím na is), které testují, zda objekt vyhovuje nějakým podmínkám. V prvé řadě sem patří testy na datový typ - isnan, isinf, isstr, finite - dotazy, zda daný objekt je NaN, nekonečno, řetězec či konečné číslo. Je-li testovacím objektem matice, vrací se stejněrozměrná matice výsledků - odpovědí pravd a nepravd v podobě jedniček a nul:

    >> M=[27, NaN, -Inf];
    >> isnan(M)
    ans =
      0  1  0
    >> isinf(M)
    ans =
      0  0  1
    >> finite(M)
    ans =
      1  0  0
    >> isstr("Ahoj")
    ans = 1

    Funkce isstr testuje, zda daný objekt je řetězcem - o řetězcích bude podrobné pojednání někdy příště.

    Další řada funkcí testuje numerické objekty - isnumeric, isreal, iscomplex, ismatrix, isvector, isscalar - ptáme se, je-li objekt číslo, reálné číslo, komplexní číslo, matice, vektor, skalár:

    >> isnumeric(Inf)
    ans = 1
    >> isreal(2.5+6i)
    ans = 0
    >> iscomplex(2.5+6i)
    ans = 1
    >> iscomplex(2.5)
    ans = 0
    >> ismatrix([])
    ans = 0
    >> isvector([1 2; 3 4])
    ans = 0
    >> isscalar([1 1])
    ans = 0

    Mezi dalšími testovacími funkcemi je vhodné zmínit se zejména o:

    • issquare - je-li objekt čtvercová matice, vrátí její řád, v opačném případě vrací nulu.
    • isbool, islogical - testuje, zda je objekt logický výraz
    • isempty - testuje, zda objektem je prázdná matice
    • is_duplicate_entry - vrací počet prvků, které duplikují již předchozí prvky v objektu

    Příklady:

    >> issquare(ones(5))
    ans = 5
    >> isbool(5 >= 0 & xor(1,0))
    ans = 1
    >> isbool(1)
    ans = 0
    >> isempty([])
    ans = 1
    >> is_duplicate_entry([1 2 3 1 1 3 3 1])
    ans = 5

    Poslední příklad vyšel roven pěti, protože kromě jedničky na prvním místě vstupního vektoru zde jsou ještě 3 další duplicity jedniček a k trojce uvedené na třetím místě dále figurují další 2 duplicity: 3 + 2 = 5. Výše uvedený výčet jednoduchých testovacích funkcí není zdaleka úplný, o některých ještě bude řeč dále, ostatní lze nalézt v nápovědě.

    Hledání prvků

    Hodnoty pravda a nepravda také vrací funkce any a all. První jmenovaná se ptá, zda-li je ve zkoumaném vektoru alespoň jeden prvek nenulový, druhá pak, zda-li jsou všechny prvku ve vektoru nenulové:

    >> V=[0 1 2 3]; W=[1 2 3 4]; X=[0 0 0 0];
    >> any(V), any(W), any(X)
    ans = 1
    ans = 1
    ans = 0
    >> all(V), all(W), all(X)
    ans = 0
    ans = 1
    ans = 0

    Pokud tyto funkce aplikujeme na matici, jako výsledek získáme vektor odpovědí - ke každému sloupci matice jednu:

    >> A=[0 1 0; 1 2 0]
    A =
      0  1  0
      1  2  0
    >> any(A),all(A)
    ans =
      1  1  0
    ans =
      0  1  0

    Kde je v odpovědi jednička, tak v takovém sloupci v pořadí daná podmínka platí. Chceme-li získat jedinou odpověď pro celou matici, můžeme funkce aplikovat vícekrát. Dotaz

    >> any(any(A))
    ans = 1

    zjistí, zda v celé matici je alespoň jedno číslo nenulové; kombinací funkcí

    >> all(any(A))
    ans = 0

    zase zjistíme, zda všechny sloupce matice obsahují alespoň jedno nenulové číslo apod.

    Zatímco funkce any a all dávaly odpovědi ano a ne, s pomocí funkce find lze najít pozice prvků, které nějakou podmínku splňují. Přesně definováno funkce find vrací sloupcový vektor pozic nenulových prvků v matici:

    >> find(A)
    ans =
      2
      3
      4

    V takovémto jednoduchém případě se pozice počítají od jedničky po sloupcích směrem od shora dolů, aktuální pozice tedy odpovídá přepočtu řádek + počet řádků × (sloupec -1):

    A =          %  Pozice v A =
      0  1  0    %             1  3  5
      1  2  0    %             2  4  6

    Funkci find lze „donutit“, aby pozice prvků vracela jako dva vektory, kdy v jednom budou indexy řádků a ve druhém indexy sloupců; správné souřadnice pak získáme, vezmeme-li dvojice čísel ze stejných pozic v těchto vektorech:

    >> [radky, sloupce]=find(A)
    radky =
      2
      1
      2
    sloupce =
      1
      2
      2

    Pro lepší přehlednost pak můžeme tyto sloupcové vektory vypsat vedle sebe v jedné matici:

    >> [radky, sloupce]
    ans =
      2  1  % čteno po řádcích vidíme souřadnice
      1  2
      2  2

    Výsledek nyní čteme tak, že nenulové prvky jsou v matici A ve druhém řádku a prvním sloupci, v prvním řádku a druhém sloupci a také v druhém řádku a druhém sloupci.

    Nakonec si ukažme, jak se se funkce find obvykle používá - pro výpis pozic prvků, které splňují nějakou podmínku:

    >> find(A==0)
    ans =
      1
      5
      6

    Na vypsaných pozicích je v matici A číslo nula.

    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
    Linuxové herní novinky – srpen 2017

    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 - 3 (přístup k jednotlivým položkám matice)
    »—> Octave - 5 (práce s řetězci)
    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 - 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ář

    14.2.2006 09:45 Martinus | skóre: 21 | blog: martinus
    Rozbalit Rozbalit vše Re: Octave - 4 (je to pravda?)
    Chtěl bych poděkovat autorovi, že se pustil do něčeho takového. Přijde mi to jako velice složité téma. Já jsem vždycky zápasil s Matlabem tak dlouho, než jsem to vzdal. Tímhle přístupem se možná naučím používat octave ;-)
    Free your mind and the ass will follow...
    14.2.2006 13:32 5
    Rozbalit Rozbalit vše Re: Octave - 4 (je to pravda?)
    v principe aj matlab ;0)
    14.2.2006 17:04 Veritas | skóre: 13 | blog: veritas
    Rozbalit Rozbalit vše Re: Octave - 4 (je to pravda?)
    Výborný, jen dál.
    Nehledej hry v Linuxu. Linux je hra!
    18.2.2006 22:58 vlk
    Rozbalit Rozbalit vše Re: Octave - 4 (je to pravda?)
    No tak ten nadpis nema chybu. Koukal jsem a rikal si: "A hele, nejake zvesti o Octave 4. Sakra, clovek to chvili nepouziva a mine i verzi 3."

    No a ono jenom dalsi dil serialu :-)
    Jiří Poláček avatar 19.2.2006 09:26 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
    Rozbalit Rozbalit vše Re: Octave - 4 (je to pravda?)
    :-D
    Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
    19.2.2006 17:30 K!
    Rozbalit Rozbalit vše gnuplot & octave
    privital by som clanok o moznostiach _gnuplot & octave_, nepouvazuje nad tym niekto? :-)
    Jiří Poláček avatar 20.2.2006 08:53 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
    Rozbalit Rozbalit vše Re: gnuplot & octave
    Octave pro svůj grafický výstup používá právě gnuplot – takže snad stačí přečíst si nějaký článek o gnuplotu – těch už myslím v češtině vyšlo docela dost. Přesto mám nějaké pojednání o kreslení grafů v Octave v přípravě, jestli to jako příslib postačuje.
    Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
    21.2.2006 20:54 K!
    Rozbalit Rozbalit vše Re: gnuplot & octave
    uz teraz sa na to tesim :-). Ide mi prave o to, ze gnuplot, tak ako ho "implementuje" octave moze byt skvelym pomocnikom napr. v matematickej analyze (samozrejme okrem ineho).

    Založit nové vláknoNahoru

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