while cyklus s podmínkou na začátku cyklus bez udání počtu opakování while podmínka příkazy; příkazy; příkazy; end; % další pokračování programu

Podobné dokumenty
Příklad elektrický obvod se stejnosměrným zdrojem napětí

KTE / PPEL Počítačová podpora v elektrotechnice

cyklus s daným počtem opakování cyklus s podmínkou na začátku (cyklus bez udání počtu opakování)

Univerzitní licence MATLABu. Pište mail na: se žádostí o nejnovější licenci MATLABu.

Základy algoritmizace a programování

Příklad: Řešte soustavu lineárních algebraických rovnic 10x 1 + 5x 2 +70x 3 + 5x 4 + 5x 5 = 275 2x 1 + 7x 2 + 6x 3 + 9x 4 + 6x 5 = 100 8x 1 + 9x 2 +

Matematika B101MA1, B101MA2

Lineární algebra. Matice, operace s maticemi

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Základy matematiky pro FEK

Kapitola 11: Vektory a matice:

Čtvercové matice. Čtvercová matice je taková matice, jejíž počet řádků je roven počtu jejích sloupců

II. Úlohy na vložené cykly a podprogramy

Příklady k prvnímu testu - Matlab

0.1 Úvod do lineární algebry

ČTVERCOVÉ MATICE. Čtvercová matice je taková matice, kde počet řádků je roven počtu jejích sloupců. det(a) značíme determinant čtvercové matice A

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

VĚTY Z LINEÁRNÍ ALGEBRY

pi Ludolfovo číslo π = 3,14159 e Eulerovo číslo e = 2,71828 (lze spočítat jako exp(1)), např. je v Octave, v MATLABu tato konstanta e není

Operace s maticemi

Soustava m lineárních rovnic o n neznámých je systém

Základy maticového počtu Matice, determinant, definitnost

Operace s maticemi. 19. února 2018

Hisab al-džebr val-muqabala ( Věda o redukci a vzájemném rušení ) Muhammada ibn Músá al-chvárizmího (790? - 850?, Chiva, Bagdád),

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

0.1 Úvod do lineární algebry

Uspořádanou n-tici reálných čísel nazveme aritmetický vektor (vektor), ā = (a 1, a 2,..., a n ). Čísla a 1, a 2,..., a n se nazývají složky vektoru

Kapitola 11: Vektory a matice 1/19

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

DEFINICE Z LINEÁRNÍ ALGEBRY

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

Množinu všech matic typu m n nad tělesem T budeme označovat M m n (T ), množinu všech čtvercových matic stupně n nad T pak M n (T ).

Determinanty. Obsah. Aplikovaná matematika I. Pierre Simon de Laplace. Definice determinantu. Laplaceův rozvoj Vlastnosti determinantu.

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Slovo ALGEBRA pochází z arabského al-jabr, což znamená nahrazení. Toto slovo se objevilo v názvu knihy

Lineární algebra Operace s vektory a maticemi

8 Matice a determinanty

MENDELOVA UNIVERZITA V BRNĚ LDF MT MATEMATIKA VEKTORY, MATICE

MENDELOVA UNIVERZITA V BRNĚ LDF MT MATEMATIKA VEKTORY, MATICE

AVDAT Vektory a matice

Jedná se o soustavy ve tvaru A X = B, kde A je daná matice typu m n,

PPEL_3_cviceni_MATLAB.txt. % zadat 6 hodnot mezi cisly 2 a 8 % linspace (pocatek, konec, pocet bodu)

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Číselné vektory, matice, determinanty

Determinanty. Determinanty. Přednáška MATEMATIKA č. 3. Jiří Neubauer

Úvod do lineární algebry

1 Determinanty a inverzní matice

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici

PHP tutoriál (základy PHP snadno a rychle)

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

Soustavy lineárních rovnic a determinanty

12. Determinanty. 12. Determinanty p. 1/25

Stručný návod k programu Octave

ekologie Pavel Fibich Vektor a Matice Operace s maticemi Vlastnosti matic Pavel Fibich Shrnutí Literatura

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

1/10. Kapitola 12: Soustavy lineárních algebraických rovnic

TECHNICKÁ UNIVERZITA V LIBERCI

Determinant matice řádu 5 budeme počítat opakovaným použitím rozvoje determinantu podle vybraného řádku nebo sloupce. Aby byl náš výpočet

Programy na PODMÍNĚNÝ příkaz IF a CASE

11MAMY LS 2017/2018. Úvod do Matlabu. 21. února Skupina 01. reseni2.m a tak dále + M souborem zadané funkce z příkladu 3 + souborem skupina.

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Matematika 1 MA1. 2 Determinant. 3 Adjungovaná matice. 4 Cramerovo pravidlo. 11. přednáška ( ) Matematika 1 1 / 29

SOUČIN MATIC A m n B n p = C m p, přičemž: a i1 b 1j +a i2 b 2j + +a in b nj = c ij, i=1 m, j=1 p. Např: (-2) = -3

Soustavy lineárních rovnic

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Algoritmus pro generování normálních magických čtverců

4. Trojúhelníkový rozklad p. 1/20

Cílem této kapitoly je uvedení pojmu matice a jejich speciálních typů. Čtenář se seznámí se základními vlastnostmi matic a s operacemi s maticemi

Programovací jazyk Pascal

Řídicí struktury. alg3 1

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. LINEÁRNÍ ALGEBRA Vektory Operace s vektory... 8 Úlohy k samostatnému řešení... 8

(Cramerovo pravidlo, determinanty, inverzní matice)

HODNOST A DETERMINANT MATICE, INVERZNÍ MATICE

HODNOST A DETERMINANT MATICE, INVERZNÍ MATICE

1. Matice a maticové operace. 1. Matice a maticové operace p. 1/35

ZŠ ÚnO, Bratří Čapků 1332

MATEMATIKA PRO PŘÍRODNÍ VĚDY LINEÁRNÍ ALGEBRA, DIFERENCIÁLNÍ POČET MPV, LADP TUL, ZS 2009/10

P íklady k prvnímu testu - Scilab

E+034 = ; = e E+034

Vektorový prostor. Př.1. R 2 ; R 3 ; R n Dvě operace v R n : u + v = (u 1 + v 1,...u n + v n ), V (E 3 )...množina vektorů v E 3,

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?

15 Maticový a vektorový počet II

Algoritmizace a programování

Operace s vektory a maticemi + Funkce

Skalár- veličina určená jedním číselným údajem čas, hmotnost (porovnej životní úroveň, hospodaření firmy, naše poloha podle GPS )

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

KIV/ZI Základy informatiky MS EXCEL MATICOVÉ FUNKCE A SOUHRNY

1 Vektorové prostory.

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC

Připomenutí co je to soustava lineárních rovnic

Transkript:

while cyklus s podmínkou na začátku cyklus bez udání počtu opakování while podmínka příkazy; příkazy; příkazy; end; % další pokračování programu podmínka je libovolný logický výraz s logickou hodnotou 0 nebo 1 (většinou se používají relační nebo logické operátory) příkazy v těle cyklu jsou jakékoli příkazy, které se mají provádět opakovaně, je-li podmínka splněna (hodnota 1)

Speciální případy: while(1) prikazy; end while(0) prikazy; end

Speciální případy: while(1) příkazy; end Pozor: podmínka má logickou hodnotu 1, je tedy stále pravdivá, příkazy probíhají stále. Jedná se o nekonečnou smyčku, lze ji opustit jen pomocí break. while(0) příkazy; end

Speciální případy: while(1) příkazy; end Pozor: podmínka má logickou hodnotu 1, je tedy stále pravdivá, příkazy probíhají stále. Jedná se o nekonečnou smyčku, lze ji opustit jen pomocí break. while(0) příkazy; end Pozor: podmínka má logickou hodnotu 0, je tedy nepravdivá, příkazy neproběhnou.

Příklad: Funkce pro výpočet součtu prvních n přirozených čísel Přirozeným číslem se rozumí kladné celé číslo (1, 2, 3, ). function soucet_n_prirozenych(n) % n vstup (pocet prirozenych cisel pro soucet) s = 0; % soucet prvnich n prirozenych cisel % s je zatím 0, behem cyklu se zvetsi a = 1; % 1. prirozene cislo, behem cyklu se zmeni while (a <= n) s = s+a; % posupne se pricte 1,2,3,...,n a = a+1; % a se zvetsuje na 2,3,4,...,n+1 end % konec while disp(s) end % konec funkce Jiný způsob řešení daného problému na http://fyzmatik.pise.cz/706-gaussuv-soucet-aritmeticke-posloupnosti.html

Příklad: Funkce pro výpočet součtu prvních n přirozených čísel Přirozeným číslem se rozumí kladné celé číslo (1, 2, 3, ). function soucet_n_prirozenych(n) % n vstup (pocet prirozenych cisel pro soucet) s = 0; % soucet prvnich n prirozenych cisel % s je zatím 0, behem cyklu se zvetsi a = 1; % 1. prirozene cislo, behem cyklu se zmeni while (a <= n) s = s+a; % posupne se pricte 1,2,3,...,n a = a+1; % a se zvetsuje na 2,3,4,...,n+1 end disp(s) end % konec while % konec funkce a nabude hodnoty n+1, ale tato hodnota už se nepřičítá Jiný způsob řešení daného problému na http://fyzmatik.pise.cz/706-gaussuv-soucet-aritmeticke-posloupnosti.html

Pomocné příkazy pro cykly: break - ukončí běh cyklu a vyskočí z něj za jeho koncový end continue - vyvolá okamžitě další otočku cyklu (for nebo while) - obvykle se použije if a podmínka => break nebo continue Např. % a = ; b = ; while podmínka příkazy_1; if(a < 5) break; end; if (b > 30) continue; end; příkazy_2; end; % zbytek programu;

Pomocné příkazy pro cykly: break - ukončí běh cyklu a vyskočí z něj za jeho koncový end continue - vyvolá okamžitě další otočku cyklu (for nebo while) - obvykle se použije if a podmínka => break nebo continue Např. % a = ; b = ; while podmínka příkazy_1; if(a < 5) break; end; if (b > 30) continue; end; příkazy_2; end; % zbytek programu;

Pomocné příkazy pro cykly: break - ukončí běh cyklu a vyskočí z něj za jeho koncový end continue - vyvolá okamžitě další otočku cyklu (for nebo while) - obvykle se použije if a podmínka => break nebo continue Např. % a = ; b = ; while podmínka příkazy_1; if(a < 5) break; end; if (b > 30) continue; end; příkazy_2; end; % zbytek programu;

Pomocné příkazy pro cykly: break - ukončí běh cyklu a vyskočí z něj za jeho koncový end continue - vyvolá okamžitě další otočku cyklu (for nebo while) - obvykle se použije if a podmínka => break nebo continue Např. % a = ; b = ; while podmínka příkazy_1; if(a < 5) break; end; if (b > 30) continue; end; příkazy_2; end; % zbytek programu;

Příklad: vstupní parametr x se zvětší nebo zmenší na číslo 100. function sto_stop(x) while(1) % nekonečný cyklus if (x < 100) % relační operátor je menší disp(x) x=x+1; elseif (x > 100)% relační operátor je vetší disp(x) x=x-1; else disp('cislo je rovno 100 => konec!!!') break % konec běhu cyklu end % konec podmíněného příkazu if end % konec while end % konec zápisu funkce

Pokračování příkladu Volání funkce: sto_stop(87) 87 88 89 90 91 92 93 94 95 96 97 98 99 Cislo je rovno 100 => konec!!! nebo sto_stop(102) 102 101 Cislo je rovno 100 => konec!!! nebo sto_stop(100) Cislo je rovno 100 => konec!!!

switch nahradí if v případě, kdy mám více možností a if by bylo mnohokrát za sebou (speciální případ podmínky). switch výraz case případ_1 Příkaz 1_1 proběhne, příkazy_1_1; je-li výraz roven případu_1. case případ_2 Příkazy 2_1 a 2_2 proběhnou, příkazy_2_1 ; je-li výraz roven případu_2. příkazy_2_2; case {případ_3,případ_4,případ_5} příkazy_3_1; Příkazy 3_1 až 3_3 proběhnou, příkazy_3_2; je-li výraz roven případu_3, příkazy_3_3; případu_4 nebo případu_5 otherwise příkazy_jiné ; Příkazy jiné proběhnou, pokud žádný end z případů neodpovídá výrazu.

switch nahradí if v případě, kdy mám více možností a if by bylo mnohokrát za sebou (speciální případ podmínky). switch výraz case případ_1 příkazy_1_1; case případ_2 příkazy_2_1 ; příkazy_2_2; case {případ_3,případ_4,případ_5} příkazy_3_1; větvi case příkazy_3_2; zavolejte příkazy_3_3; otherwise příkazy_jiné ; Příkazy jiné proběhnou, pokud žádný end Počet příkazů ve větvi case by měl být malý, pokud potřebujete více příkazů, napište další funkci a tu ve z případů neodpovídá výrazu.

Např.: Čísla 1-7 značí dny v týdnu - pondělí až neděle volba_dne = 3; % volba_dne je řídící proměnná příkazu switch switch volba_dne case 1 příkazy pro pondělí; case 3 příkazy pro středa; case 5 příkazy pro pátek; case 6 příkazy pro sobota; otherwise příkazy pro všechny jiné varianty; end;

To je totéž jako: volba_dne = 3; % přiřazení if volba_dne == 1 % porovnání na rovnost příkazy pro pondělí; elseif volba_dne == 3 % porovnání na rovnost příkazy pro středa; elseif volba_dne == 5 % porovnání na rovnost příkazy pro pátek; elseif volba_dne == 6 % porovnání na rovnost příkazy pro sobota; else příkazy pro všechny jiné varianty; end; - což není moc přehledné lepší je zde použít switch case.

Podobně: dny v týdnu - pondělí až neděle textové řetězce musí být v apostrofech '' volba_dne = 'streda'; switch volba_dne case 'pondeli' příkazy pro pondělí; case 'streda' příkazy pro středa; case 'patek' příkazy pro pátek; case 'sobota' příkazy pro sobota; otherwise příkazy pro všechny jiné varianty; end

nebo, chci-li ošetřit dva dny najednou: volba_dne = 'streda'; switch volba_dne case 'pondeli' příkazy pro pondělí; seznam variant case 'streda' ve složených příkazy pro středa; závorkách case 'patek' {v 1, v 2, v 3,,v n } příkazy pro pátek; case {'sobota', 'nedele'} příkazy pro sobota a neděle; otherwise příkazy pro všechny jiné varianty; end

Příklad: Funkce informace o pracovní činnosti v týdnu function tyden(volba_dne) switch volba_dne case 'pondeli' disp('oddych po víkendu'); case 'utery' disp('příprava na pracovní den'); end end case 'streda' disp('pracovní den'); case 'ctvrtek' disp('oddych po pracovním dni'); case 'patek' disp('příprava na víkend'); case {'sobota', 'nedele'} disp('víkendové volno'); otherwise disp('tento den neexistuje'); % konec switch % konec funkce vstup musí být řetezec znaků Volání funkce: tyden('streda') pracovní den nebo tyden('nedele') víkendové volno nebo tyden('rijen') tento den neexistuje

Příklad: Funkce jednoduchá kalkulačka function kalkulacka(a,b,znak) % funkce ma 3 vstupy: A,B - ciselné hodnoty, znak retezec switch (znak) case '+' disp(a+b); case '-' disp(a-b); case '*' disp(a.*b); case '/' disp(a./b); case '\' disp(a.\b); otherwise disp('takto nepocitam'); end % konec switch end % konec funkce Volání funkce: kalkulacka(3,5,'+') 8 nebo kalkulacka(8,4,'/') 2 nebo kalkulacka(8,4,'\') 0.5000 nebo kalkulacka(12,7,'!') takto nepocitam

eye jednotková matice je čtvercová matice s jednotkami na hlavní diagonále (jinde jsou nuly) nebo obdélníková matice s jednotkovou submaticí, např: eye(2) 1 0 0 1 eye(2,3) 1 0 0 0 1 0 Násobení jednotkovou maticí A=[1,2;3,4] A = 1 2 3 4 B = [1:4;2:2:8] B = 1 2 3 4 2 4 6 8 A*eye(2) 1 2 3 4 B*eye(4) 1 2 3 4 2 4 6 8 eye(2)*a 1 2 3 4 eye(2)*b 1 2 3 4 2 4 6 8

ones(n) matice naplněná jedničkami o rozměru n n ones(m,n) matice naplněná jedničkami o rozměru m n K = ones(3) K = 1 1 1 1 1 1 1 1 1 L = ones(2,3) L = 1 1 1 1 1 1 ones(4,2) 1 1 1 1 1 1 1 1

ones(n) matice naplněná jedničkami o rozměru n n ones(m,n) matice naplněná jedničkami o rozměru m n K = ones(3) K = 1 1 1 1 1 1 1 1 1 L = ones(2,3) L = 1 1 1 1 1 1 ones(4,2) 1 1 1 1 1 1 1 1 Pozor: matice plná jedniček ones(2) 1 1 1 1 matice jednotková eye(2) 1 0 0 1

matice naplněná čísly 5 o rozměru 3 x 3 F = 5.*ones(3) F = 5 5 5 5 5 5 5 5 5 matice naplněná čísly 7 o rozměru 4 x 2 7.*ones(4,2) 7 7 7 7 7 7 7 7 matice naplněná čísly -4 o rozměru 2 x 3 G = -4.*ones(2,3) G = -4-4 -4-4 -4-4

zeros(n) matice naplněná nulami o rozměru n n zeros(m,n) matice naplněná nulami o rozměru m n N = zeros(3) N = 0 0 0 0 0 0 0 0 0 Q = zeros(2,3) Q = 0 0 0 0 0 0 zeros(4,2) 0 0 0 0 0 0 0 0

magic(n) "magická" matice - magický čtverec o rozměru n x n, součet prvků na diagonále je stejný jako součet prvků v jednotlivých řádcích a sloupcích matice M = magic(3) M = 8 1 6 3 5 7 4 9 2 diag(m) 8 5 2 sum(diag(m)) 15 M.' 8 3 4 1 5 9 6 7 2 sum(m) 15 15 15 sum(m.') 15 15 15

pascal(n) Pascalův trojúhelník o rozměru n x n pascal(7) 1 1 1 1 1 1 1 1 2 3 4 5 6 7 1 3 6 10 15 21 28 1 4 10 20 35 56 84 1 5 15 35 70 126 210 1 6 21 56 126 252 462 1 7 28 84 210 462 924 První řádek a první sloupec jsou tvořeny pouze číslem jedna. Druhý řádek a druhý sloupec jsou tvořeny seřazenými přirozenými čísly. Další řádky a sloupce jsou tvořeny součtem čísel vlevo a nahoře.

hilb(n) čtvercová matice o rozměru n x n, pro jejíž prvky platí: H kl = 1 / (k + l 1) kde k a l jsou indexy příslušného řádku a sloupce H = hilb(5) H = 1 1/2 1/3 1/4 1/5 1/2 1/3 1/4 1/5 1/6 1/3 1/4 1/5 1/6 1/7 1/4 1/5 1/6 1/7 1/8 1/5 1/6 1/7 1/8 1/9 Např. H 34 = 1 / (3 + 4 1) = 1/6 prvek v 3. řádku a 4. sloupci

rand pseudo-náhodné číslo v rozmezí 0 až 1 (desetinné) rand(n) matice o rozměru n x n obsahující pseudo-náhodná čísla v rozmezí 0 až 1 rand(m,n) matice s m řádky a n sloupci obsahující pseudonáhodná čísla v rozmezí 0 až 1 Např. x = rand(1,1000); y = rand(1,1000); plot(x,y,'o')

randn(n) matice o rozměru n x n obsahující pseudo-náhodné hodnoty, které jsou získány z normálního rozdělení s průměrem nula a směrodatnou odchylkou jedna. randn(m,n) matice s m řádky a n sloupci obsahující pseudonáhodné hodnoty, které jsou získány z normálního rozdělení s průměrem nula a směrodatnou odchylkou jedna. Např. xn = randn(1,1000); yn = randn(1,1000); plot(xn,yn,'o')

Jednoduchá funkce na generování pseudonáhodných čísel: function vysledek = nahoda(r, s, odkol, dokol) % r počet řádků % s počet sloupců % odkol dolní mez (od jakého čísla generujeme) % dokol horní mez (do jakého čísla generujeme) % round zaokrouhlení na nejbližší celé číslo vysledek = round(rand(r,s).* (dokol-odkol)) + odkol; end Volání funkce: M = nahoda(3, 5, -4, 4) M = -3 1-1 -4 2 4-4 3-3 1 4-2 -4 1 0

B = [x,y] B = 1 2 3 4 5 9 3 4 3 2 Složení matice ze dvou řádkových vektorů: x = [1:5] x = 1 2 3 4 5 y = [9,3,4,3,2] y = 9 3 4 3 2 ; středník A = [x;y] oddělovač řádků A = matice při zadávání 1 2 3 4 5 9 3 4 3 2

Složení matice ze dvou řádkových vektorů: x = [1:5] x = 1 2 3 4 5 y = [9,3,4,3,2] y = 9 3 4 3 2 A = [x;y] A = 1 2 3 4 5 9 3 4 3 2 ; středník oddělovač řádků matice při zadávání, čárka oddělovač položek v řádku matice B = [x,y] B = 1 2 3 4 5 9 3 4 3 2

Složení matice ze dvou sloupcových vektorů: x = [1:5]; y = [9,3,4,3,2]; x.' 1 2 3 4 5 y.' 9 3 4 3 2, čárka ; středník C = [x.',y.'] C = 1 9 2 3 3 4 4 3 5 2 D = [x.';y.'] D = 1 2 3 4 5 9 3 4 3 2

Přístup k jednotlivým prvkům matic a vektorů: - pomocí tzv. indexů (indexuje se od 1) a=[9:-1:4] a = 9 8 7 6 5 4 a(3) přístup k 3. prvku 7 b=[10;8] b = 10 8 b(2) přístup k 2. prvku 8

Přístup k jednotlivým prvkům matic a vektorů: - pomocí tzv. indexů (indexuje se od 1) a=[9:-1:4] a = 9 8 7 6 5 4 a(3) přístup k 3. prvku 7 b=[10;8] b = 10 8 b(2) přístup k 2. prvku 8 a(1,3) 7 přístup k prvku v 1. řádku, 3. sloupci b(2,1) 8 přístup k prvku ve 2. řádku, 1. sloupci

Přístup k jednotlivým prvkům matic a vektorů: - pomocí tzv. indexů (indexuje se od 1) a=[9:-1:4] a = 9 8 7 6 5 4 a(3) přístup k 3. prvku 7 b=[10;8] b = 10 8 b(2) přístup k 2. prvku 8 pokud se jedná o řádkový, resp. sloupcový vektor, nikoli o matici, lze vynechat index 1 na pozici řádku, resp. sloupce a(1,3) 7 přístup k prvku v 1. řádku, 3. sloupci b(2,1) 8 přístup k prvku ve 2. řádku, 1. sloupci

Přístup k jednotlivým prvkům matic a vektorů: a=[9:-1:4] a = 9 8 7 6 5 4 a(end) 4 b=[10;8] b = 10 8 přístup k poslednímu prvku b(end) 8

Přístup k jednotlivým prvkům matic a vektorů: a=[9:-1:4] a = 9 8 7 6 5 4 a(end) 4 b=[10;8] b = 10 8 přístup k poslednímu prvku b(end) 8

Přístup k jednotlivým prvkům matic a vektorů: D=[1:5;9,3,4,3,2;1:2:9;9:-1:5] D = 1 2 3 4 5 9 3 4 3 2 1 3 5 7 9 9 8 7 6 5 D(3,4) 7 - matice(index řádku, index sloupce) - přístup k prvku ve 3. řádku, 4. sloupci

Přístup k jednotlivým prvkům matic a vektorů: D=[1:5;9,3,4,3,2;1:2:9;9:-1:5] D = 1 2 3 4 5 9 3 4 3 2 1 3 5 7 9 9 8 7 6 5 D(3:4,1:3) 1 3 5 9 8 7 přístup k prvkům ve 3. až 4. řádku a 1. až 3. sloupci

Přístup k jednotlivým prvkům matic a vektorů: D=[1:5;9,3,4,3,2;1:2:9;9:-1:5] : - výčet, rozsah D = 3:4 % vektor 1 2 3 4 5 9 3 4 3 2 3 4 1 3 5 7 9 1:3 % vektor 9 8 7 6 5 D(3:4,1:3) 1 3 5 9 8 7 1 2 3 přístup k prvkům ve 3. až 4. řádku a 1. až 3. sloupci

Přístup k jednotlivým prvkům matic a vektorů: D=[1:5;9,3,4,3,2;1:2:9;9:-1:5] D = 1 2 3 4 5 9 3 4 3 2 1 3 5 7 9 9 8 7 6 5 D(3:4,:) 1 3 5 7 9 9 8 7 6 5 : - výčet, rozsah přístup k prvkům ve 3. až 4. řádku a všech sloupcích

Přístup k jednotlivým prvkům matic a vektorů: D=[1:5;9,3,4,3,2;1:2:9;9:-1:5] D = 1 2 3 4 5 9 3 4 3 2 1 3 5 7 9 9 8 7 6 5 D([1,3,4],3:end) 3 4 5 5 7 9 7 6 5 přístup k prvkům ve 1.,3. a 4. řádku a 3. až posledním sloupci

Přístup k jednotlivým prvkům matic a vektorů: D=[1:5;9,3,4,3,2;1:2:9;9:-1:5] D = 1 2 3 4 5 9 3 4 3 2 1 3 5 7 9 9 8 7 6 5 D([1,3,4],3:end) 3 4 5 5 7 9 7 6 5 přístup k prvkům ve 1.,3. a 4. řádku a 3. až posledním sloupci

Přístup k jednotlivým prvkům matic a vektorů: D=[1:5;9,3,4,3,2;1:2:9;9:-1:5] [1,3,4] D = % vektor 1 2 3 4 5 1 3 4 9 3 4 3 2 1 3 5 7 9 prvky odděleny 9 8 7 6 5 čárkami, vektor ohraničen [] D([1,3,4],3:end) 3 4 5 5 7 9 7 6 5 přístup k prvkům ve 1.,3. a 4. řádku a 3. až posledním sloupci

Přístup k jednotlivým prvkům matic a vektorů: D=[1:5;9,3,4,3,2;1:2:9;9:-1:5] D = 1 2 3 4 5 9 3 4 3 2 1 3 5 7 9 9 8 7 6 5 D(:,:)

Přístup k jednotlivým prvkům matic a vektorů: D=[1:5;9,3,4,3,2;1:2:9;9:-1:5] D = 1 2 3 4 5 9 3 4 3 2 1 3 5 7 9 9 8 7 6 5 D(:,:) Samotná : (rozsah, výčet) má význam (u indexů matic), že chci použít všechny možné (dostupné) hodnoty. vytiskne celou matici D, všechny řádky i sloupce

Přidání řádku k matici: D=[1:5;9,3,4,3,2;1:2:9;9:-1:5] D = 1 2 3 4 5 9 3 4 3 2 1 3 5 7 9 9 8 7 6 5 1:4 1 2 3 4 D(5,:)=[1:4] přidání 5. řádku nelze: řádek musí mít 5 sloupců (prvků) jako matice size(d) 4 5

Přidání řádku k matici: D=[1:5;9,3,4,3,2;1:2:9;9:-1:5] D = 1 2 3 4 5 9 3 4 3 2 1 3 5 7 9 9 8 7 6 5 1:5 1 2 3 4 5 D(5,:)=[1:5] přidání 5. řádku D = 1 2 3 4 5 9 3 4 3 2 1 3 5 7 9 9 8 7 6 5 1 2 3 4 5 size(d) 5 5

Nahrazení prvku v matici: D = 1 2 3 4 5 9 3 4 3 2 1 3 5 7 9 9 8 7 6 5 1 2 3 4 5 D(4,2) = 10 D = 1 2 3 4 5 9 3 4 3 2 1 3 5 7 9 9 10 7 6 5 1 2 3 4 5 nahrazení prvku (čísla 8) na 4. řádku, ve 2. sloupci číslem 10

Nahrazení prvku v matici: D = 1 2 3 4 5 9 3 4 3 2 1 3 5 7 9 9 10 7 6 5 1 2 3 4 5 D(3:5, 1:3) = 0.001 nahrazení prvků ve 3. až 5. řádku a 1. až 3. sloupci číslem 0.001 D = 1.000 2.000 3.000 4.000 5.000 9.000 3.000 4.000 3.000 2.000 0.001 0.001 0.001 7.000 9.000 0.001 0.001 0.001 6.000 5.000 0.001 0.001 0.001 4.000 5.000

Zrušení sloupce nebo řádku: D = 1.000 2.000 3.000 4.000 5.000 9.000 3.000 4.000 3.000 2.000 0.001 0.001 0.001 7.000 9.000 0.001 0.001 0.001 6.000 5.000 0.001 0.001 0.001 4.000 5.000 zrušení 4. sloupce vymažeme jej přiřazením prázdné matice [] D(:,4) = [] D = 1.000 2.000 3.000 5.000 9.000 3.000 4.000 2.000 0.001 0.001 0.001 9.000 0.001 0.001 0.001 5.000 0.001 0.001 0.001 5.000 size(d) 5 4

Přístup k prvkům matice : D = 1.000 2.000 3.000 5.000 9.000 3.000 4.000 2.000 0.001 0.001 0.001 9.000 0.001 0.001 0.001 5.000 0.001 0.001 0.001 5.000 D(:,5) přístup k prvkům ve všech řádcích a 5. sloupci nelze: 5. sloupec už neexistuje size(d) 5 4 před zrušením sloupce matice D měla 5 řádků a 5 sloupců, 4. sloupec byl odstraněn přiřazením prázdné matice [], nyní má matice D jen 4 sloupce.

5. sloupec k matici opět přidáme: D = 1.000 2.000 3.000 5.000 9.000 3.000 4.000 2.000 0.001 0.001 0.001 9.000 0.001 0.001 0.001 5.000 Měl by to být sloupcový vektor přidáváme sloupec, proto středník ; 0.001 0.001 0.001 5.000 D(:,5) = [7;9;3;2;5] D = 1.000 2.000 3.000 5.000 7.000 9.000 3.000 4.000 2.000 9.000 0.001 0.001 0.001 9.000 3.000 0.001 0.001 0.001 5.000 2.000 0.001 0.001 0.001 5.000 5.000 Stejně by se k matici přidal řádek nebo více řádků nebo více sloupců Samozřejmě se musí dodržet v přiřazení, zda dodám sloupec nebo řádky.

Zrušení sloupce nebo řádku: D = 1.000 2.000 3.000 5.000 7.000 9.000 3.000 4.000 2.000 9.000 0.001 0.001 0.001 9.000 3.000 0.001 0.001 0.001 5.000 2.000 0.001 0.001 0.001 5.000 5.000 D(3:5,1:3) = [] zrušení 3. až 5. řádku a 1. až 3. sloupce nelze: není možné vykousnout kus matice

Nahrazení řádku nebo sloupce: D = 1.000 2.000 3.000 5.000 7.000 9.000 3.000 4.000 2.000 9.000 0.001 0.001 0.001 9.000 3.000 0.001 0.001 0.001 5.000 2.000 0.001 0.001 0.001 5.000 5.000 D(:,4) = zeros(5,1) nahrazení 4. sloupce nulami D = 1.000 2.000 3.000 0.000 7.000 9.000 3.000 4.000 0.000 9.000 0.001 0.001 0.001 0.000 3.000 0.001 0.001 0.001 0.000 2.000 0.001 0.001 0.001 0.000 5.000

Nahrazení řádku nebo sloupce: D = 1.000 2.000 3.000 5.000 7.000 9.000 3.000 4.000 2.000 9.000 0.001 0.001 0.001 9.000 3.000 0.001 0.001 0.001 5.000 2.000 0.001 0.001 0.001 5.000 5.000 5 řádků, 1 sloupec => sloupcový vektor plný nul D(:,4) = zeros(5,1) nahrazení 4. sloupce nulami D = 1.000 2.000 3.000 0.000 7.000 9.000 3.000 4.000 0.000 9.000 0.001 0.001 0.001 0.000 3.000 0.001 0.001 0.001 0.000 2.000 0.001 0.001 0.001 0.000 5.000

Přidání prvku : D = 1.000 2.000 3.000 0.000 7.000 9.000 3.000 4.000 0.000 9.000 0.001 0.001 0.001 0.000 3.000 0.001 0.001 0.001 0.000 2.000 0.001 0.001 0.001 0.000 5.000 D(7,6) = -3 přidání prvku na 7. řádek a 6. sloupec D = 1.000 2.000 3.000 0.000 7.000 0.000 9.000 3.000 4.000 0.000 9.000 0.000 0.001 0.001 0.001 0.000 3.000 0.000 0.001 0.001 0.001 0.000 2.000 0.000 0.001 0.001 0.001 0.000 5.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000-3.000 Toto lze provést, zbytek matice se vyplní nulami.

D = 1.000 2.000 3.000 0.000 7.000 0.000 9.000 3.000 4.000 0.000 9.000 0.000 0.001 0.001 0.001 0.000 3.000 0.000 0.001 0.001 0.001 0.000 2.000 0.000 0.001 0.001 0.001 0.000 5.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000-3.000 size(d) 7 6 D(2:6,:) = [] D = 1.000 2.000 3.000 0.000 7.000 0.000 0.000 0.000 0.000 0.000 0.000-3.000 size(d) 2 6 zrušení 2. až 6. řádku Pozor: rozměr matice se mění! Původní matice již neexistuje.

Zrušení sloupců nebo řádků: D = 1.000 2.000 3.000 0.000 7.000 0.000 0.000 0.000 0.000 0.000 0.000-3.000 D(:,:) = [] D(m,:) = [] zrušení m-tého řádku (a všech sloupců) D(:,n) = [] zrušení n-tého sloupce (a všech řádků) zrušení celé matice, všech řádků a všech sloupců, D = vznikne prázdná matice Empty matrix

a = [23,67,56,43,31]; b = [8,3,0,23,10]; a.* b násobení prvek po prvku 184 201 0 989 310 a.' 23 67 56 43 31 b.' 8 3 0 23 10 a * b maticové násobení vektorů a, b, (1,5) * (1,5) počty řádků a sloupců nelze násobit, rozměry matic musí souhlasit, 5 1 a.' * b.' maticové násobení transponovaných (5,1) * (5,1) vektorů a.', b.' nelze násobit, rozměry matic musí souhlasit, 1 5

a = [23,67,56,43,31]; b = [8,3,0,23,10]; a.* b násobení prvek po prvku 184 201 0 989 310 Při maticovém násobení * počet sloupců první matice (zde vektoru) musí souhlasit počtem řádků matice (zde vektoru). a.' 23 67 56 43 31 b.' 8 3 0 23 10 a * b maticové násobení vektorů a, b, (1,5) * (1,5) počty řádků a sloupců nelze násobit, rozměry matic musí souhlasit, 5 1 a.' * b.' maticové násobení transponovaných (1,5) * (5,1) vektorů a.', b.' nelze násobit, rozměry matic musí souhlasit, 1 5

a = [23,67,56,43,31]; b = [8,3,0,23,10]; a.' 23 67 56 43 31 b.' 8 3 0 23 10 c = a * b.' maticové násobení (1,1) = (1,5) * (5,1) počty řádků a sloupců c = 1684 lze násobit maticově, 5 = 5, a má 5 sloupců a b.' má 5 řádek (je to sloupec), výsledek má 1 řádek a 1 sloupec d = a.' * b maticové násobení (5,5) = (5,1) * (1,5) počty řádků a sloupců d = 184 69 0 529 230 536 201 0 1541 670 448 168 0 1288 560 344 129 0 989 430 248 93 0 713 310 lze násobit maticově, 1 = 1, a.' má 1 sloupec a b má 1 řádek, výsledek má 5 řádků a 5 sloupců

D=[1,2,3;4,5,6;7,8,-9] D = 1 2 3 4 5 6 7 8-9 diag(d) vypíše hlavní diagonálu matice D (hlavní diagonála je tvořena všemi prvky D mn, kde m = n.) diag(d) 1 prvek D 11 5 prvek D 22-9 prvek D 33 det(d) vypočte determinant matice D (jen pro čtvercové matice). Determinantem čtvercové matice řádu n nazýváme součet všech součinů n prvků této matice takových, že v žádném z uvedených součinů se nevyskytují dva prvky z téhož řádku ani z téhož sloupce. det(d) 54

A=[3,4;2,-5] A = + 3 4 2-5 Determinant matice det(a) = 3*(-5) 4*2 = -23 det(a) -23 B=[1,1;2,2] B = + 1 1 2 2 Determinant matice det(b) = 1*2 1*2 = 0 det(b) 0 Matice, která má determinant rovný nule se nazývá singulární. Matice, jejíž determinant je nenulový, se nazývá regulární. Je-li matice koeficientů soustavy lineárních algebraických rovnic regulární, potom má soustava právě jedno řešení.

Grafické znázornění výpočtu determinantu matice Sarrusovým pravidlem pro matici rozměru 3x3