Společnost Blackmagic Design oznámila vydání verze 21 svého proprietárního softwaru pro editování videí a korekci barev DaVinci Resolve běžícího také na Linuxu. Z novinek je nutno vypíchnout možnost editování fotografií. Základní verze DaVinci Resolve je k dispozici zdarma. Plnou verzi DaVinci Resolve Studio lze koupit za 295 dolarů.
Multipatformní renderovací jádro webového prohlížeče Servo je na crates.io. S vydáním verze 0.1.0 (LTS).
Nadace FreeBSD Foundation před týdnem oznámila projekt Laptop Integration Testing. Vyzvala dobrovolníky, aby pomocí nástroje otestovali podporu FreeBSD na svých zařízeních a výsledky odeslali vývojářům. Vznikla stránka Nejlepší notebooky pro FreeBSD.
Na začátku srpna vstoupí v účinnost nová evropská pravidla transparentnosti pro umělou inteligenci (AI). Zavádějí povinnost jakýkoli AI obsah označit, informovat o takzvaných deepfakes a upozornit uživatele, že komunikuje s umělou inteligencí. Cílem opatření je omezit šíření manipulativního či klamavého obsahu, zvýšit důvěru v digitální prostředí a chránit uživatele.
Connor Byrne z USA používal pro přihlašování na svůj iPhone 13 s iOS 18 heslo obsahující háček. Po aktualizaci na iOS 26.4 se už ale do telefonu nepřihlásí. Při přihlašování nelze tento háček zadat. Apple jej prostě odstranil [The Register].
Linus Torvalds vydal jádro Linux 7.0. Podrobný výčet změn je ke zhlédnutí na stránce Kernel Newbies, stručné výběry v LWN (část první, druhá).
Na čem aktuálně pracují vývojáři GNOME? Pravidelný přehled novinek v Týden v GNOME. Vypíchnout lze novou verzi 2026.1 přehrávače hudby Amberol (Flathub).
Byla vydána verze 12.0 s kódovým jménem Ecne linuxové distribuce Trisquel GNU/Linux. Založena je na Ubuntu 24.04 LTS a podporována bude do roku 2029. Trisquel patří mezi svobodné distribuce doporučované Nadací pro svobodný software (FSF).
Open-source citační manažer Zotero (Wikipedie, GitHub) byl vydán v nové major verzi 9. Přehled novinek v příspěvku na blogu.
Libre Graphics Meeting 2026, tj. čtyřdenní konference a setkání vývojářů a uživatelů svobodných a otevřených grafických softwarů, proběhne od 22. do 25. dubna v Norimberku. Dění lze sledovat na Mastodonu.
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í.
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 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
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.
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.
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
Nakonec uveďme pár základních funkcí, které se nám při práci s maticemi mohou hodit:
-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
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Diskuse byla administrátory uzamčena