Nezisková organizace Electronic Frontier Foundation (EFF) hájící občanské svobody v digitálním světě po téměř 20 letech opouští platformu X (dříve Twitter). Na platformách Bluesky, Mastodon, LinkedIn, Instagram, TikTok, Facebook, Threads a YouTube zůstává.
Terminálový textový editor GNU nano byl vydán ve verzi 9.0. Vylepšuje chování horizontálního posouvání pohledu na dlouhé řádky a chování některých klávesových zkratek. Více v seznamu změn.
Ministerstvo financí ve spolupráci s finanční správou dnes představilo beta verzi aplikace využívající umělou inteligenci pro předvyplnění daňového přiznání. Není třeba přepisovat údaje z různých potvrzení, ani hledat správné řádky, kam údaje napsat. Stačí nahrát dokumenty a využít AI.
Výrobce počítačových periferií Keychron zveřejnil repozitář se schématy šasi klávesnic a myší. Licence je restriktivní, zakazuje většinu komerčních užití a v podstatě jsou tak data vhodná pouze pro výukové účely, hlášení a opravy chyb, případně výrobu vlastního příslušenství.
Správce balíčků APT, používaný v Debianu a odvozených distribucích, byl vydán ve verzi 3.2 (seznam změn). Mezi novinkami figurují nové příkazy pro práci s historií, včetně vracení transakcí.
Společnost Anthropic oznámila Projekt Glasswing a s ní související AI model Claude Mythos Preview. Jedná se o iniciativu zaměřenou na kybernetickou bezpečnost, do které se zapojily velké technologické společnosti Amazon Web Services, Anthropic, Apple, Broadcom, Cisco, CrowdStrike, Google, JPMorganChase, Linux Foundation, Microsoft, NVIDIA a Palo Alto Networks. Anthropic věří, že nový AI model Claude Mythos Preview dokáže
… více »Firma Ojective Development vydala svůj nástroj pro monitorování a řízení odchozích síťových připojení Little Snitch i pro operační systém Linux. Linuxová verze se skládá ze tří komponent: eBPF program pro zachytávání provozu a webové rozhraní jsou uvolněny pod GNU GPLv2 a dostupné na GitHubu (převážně Rust a JavaScript), jádro backendu je proprietární pod vlastní licencí, nicméně zdarma k použití a redistribuci (cena přitom normálně … více »
Vojenské zpravodajství (VZ) se v březnu zapojilo do mezinárodní operace proti aktivitám hackerské skupiny APT28, která je spojovaná s ruskou vojenskou zpravodajskou službou GRU a která přes slabě zabezpečené routery prováděla kybernetické útoky na státní a další organizace v ČR i zahraničí. Operaci vedl americký Federální úřad pro vyšetřování (FBI) a jejím cílem bylo odebrat útočníkům přístup k napadeným zařízením a ty následně … více »
Tvůrcem nejpopulárnější kryptoměny bitcoin, který se skrývá za pseudonymem Satoši Nakamoto (Satoshi Nakamoto), je britský kryptograf Adam Back. Na základě vlastní investigativní práce to tvrdí americký deník The New York Times (NYT). Několik indicií podle autorů jasně ukazuje na to, že Back a Nakamoto jsou stejný člověk. Jde mimo jiné o podobný odborný a osobnostní profil či totožné chyby a manýry v psaném projevu.
Google Chrome 147 byl prohlášen za stabilní. Nejnovější stabilní verze 147.0.7727.55 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Vylepšeny byly také nástroje pro vývojáře. Přehled novinek v Chrome DevTools 145 až 147 také na YouTube.
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 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.
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 | 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.
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:
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ě.
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.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: