- transpozice (odlišuje se od překlopení pro komplexní čísla) - překlopení matice pole podle hlavní diagonály, např.: A.' ans =

Podobné dokumenty
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í

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

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

% vyhledání prvku s max. velikostí v jednotlivých sloupcích matice X

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

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 +

MATLAB základy. Roman Stanec PEF MZLU

Stručný návod k programu Octave

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

X37SGS Signály a systémy

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

PPEL_4_cviceni_MATLAB.txt. % 4. cvičení z předmětu PPEL - MATLAB. % Lenka Šroubová, ZČU, FEL, KTE %

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

Základy algoritmizace a programování

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

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

PPEL Ing. Petr Kropík ICQ: tel.: (odd.

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

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

E+034 = ; = e E+034

Základy programování: Algoritmizace v systému MATLAB

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

Seminář z MATLABU. Jiří Krejsa. A2/710 krejsa@fme.vutbr.cz

Základy algoritmizace a programování

Doňar B., Zaplatílek K.: MATLAB - tvorba uživatelských aplikací, BEN - technická literatura, Praha, (ISBN:

MATrixLABoratory letný semester 2004/2005

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

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

Základy matematiky pro FEK

Formátové specifikace formátovací řetězce

více křivek v jednom grafu hold on přidrží aktuální graf v grafickém okně, lze nakreslit více grafů do jednoho grafického okna postupně hold off

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

Operace s maticemi

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

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

TECHNICKÁ UNIVERZITA V LIBERCI

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

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

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

Grafické výstupy v Octave/Matlabu a GnuPlotu

MENDELOVA UNIVERZITA V BRNĚ LDF MT MATEMATIKA VEKTORY, MATICE

MENDELOVA UNIVERZITA V BRNĚ LDF MT MATEMATIKA VEKTORY, MATICE

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

otočení matice o 180

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 ).

Zápis programu v jazyce C#

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

Operace s vektory a maticemi + Funkce

Algoritmizace a programování

8. Posloupnosti, vektory a matice

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

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

Operace s maticemi. 19. února 2018

8 Třídy, objekty, metody, předávání argumentů metod

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

5 Přehled operátorů, příkazy, přetypování

0.1 Úvod do lineární algebry

Programovací jazyk Pascal

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Návod k programu TRANSTOS v1.0

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

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

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

MAXScript výukový kurz

Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru

Příklady k prvnímu testu - Matlab

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

Algoritmizace a programování

Číselné soustavy. Ve světě počítačů se využívají tři základní soustavy:

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4

Úvod do lineární algebry

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

Tabulkový procesor. Základní rysy

- jak udělat konstantu long int: L long velka = 78L;

Pokračování příkladu: funkce s2cos pro výpočet y = sin 2 (x) cos(x) function y = s2cos(x) y = (sin(x).^ 2).* cos(x);

Úvod do Matlabu. Vít Vondrák Katedra aplikované matematiky FEI, VŠB-TU Ostrava

Skriptování aneb funkce a procedury, cykly a vstupy a výstupy

4. Jednoduché výpočty

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

Programování v C++ 1, 1. cvičení

DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ

3.T Technické výpočty v Octave/Matlabu zpracování a zobrazení dat

MATLAB, v , Release 13

plot() vytváří dvou-dimenzionální grafy, mnoho různých kombinací vstupních argumentů, nejjednodušší formou je plot(y), plot(x,y).

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

Předmluva 9 Obsah knihy 9 Typografické konvence 10 Informace o autorovi 10 Poděkování 10

Předzpracování dat. Cvičení 2: Import a příprava dat v Matlabu MI-PDD, 09/2011. Pavel Kordík MI-POA

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

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

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

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný

EXCELentní tipy a triky pro mírně pokročilé. Martina Litschmannová

Objektové programování

Lineární algebra s Matlabem. Přednáška 1

Základy algoritmizace a programování

Témata absolventského klání z matematiky :

Proměnné a parametry. predn_08.odt :00:38 1

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:

Programování v jazyce C a C++

Transkript:

'.' - transpozice (odlišuje se od překlopení pro komplexní čísla) - překlopení matice pole podle hlavní diagonály, např.: A.' 1 4 2 5 3-6 {} - uzavírají (obklopují) struktury (složené proměnné) - v případě tzv. buňkových polí, vektorů cell array - u seznamů v příkazu switch-case

Mějme proměnné: PROM=1; PROm=1; PRom=1; Prom=1; who % výpis všech existujících proměnných Your variables are: PROM PROm PRom Prom whos % výpis všech existujících proměnných včetně rozměru, obsažené paměti a třídy Name Size Bytes Class Attributes PROM 1x1 8 double PROm 1x1 8 double PRom 1x1 8 double Prom 1x1 8 double clear Prom maže proměnnou Prom clear maže všechny proměnné % značí, že zbytek řádku je komentář, (v Octave lze užít #)

format nastavuje způsob zobrazení čísel na obrazovce format short nebo format krátké zobrazení desetinných čísel (4 místa) format long dlouhé zobrazení desetinných čísel (7 / 15 míst float / double) format rat racionální zobrazení desetinných čísel - přibližné zlomky format hex zobrazení čísel v hexadecimální (šestnáctkové) soustavě format + tiskne + na místě kladných čísel, - na místě záporný a mezeru místo 0 format bank bankovní formát dvě desetinná místa peníze format short e, format long e inženýrský formát, pevný počet des. míst format short g, format long g chytrý formát, vybere nejkratší verzi

nazev = 2+3; nazev nazev = 5 disp(nazev) 5 to jak tento příkaz tiskne hodnoty proměnných je dáno nastavením pomocí příkazu format z předchozí ho snímku později budeme používat fprintf, který umožňuje jemnější a nezávislé nastavení způsobu tisku každé hodnoty a také tisk do textových souborů

Některé příkazy pracují jako vestavěné funkce (built-in functions) Např.: sin(pi/2) 1 funkce jedním vstupem a jedním výstupem v = size(a) v = 2 3 funkce vrátí počet řádků a sloupců matice A. funkce s jedním vstupem a jedním výstupem, výstupem je dvouprvkový řádkový vektor (počet řádků, počet sloupců matice). pokud existuje více výstupních argumentů (prvky vektoru v hranatých závorkách [ ]), počet řádků je přiřazen do prvního a počet sloupce do druhého, např.: [r,s] = size(a) r = 2 s = 3 help něco textová nápověda, např. help sin, help size, apod.

Některé příkazy pracují jako vestavěné funkce (built-in functions) Např.: sin(pi/2) A = 1 1 2 3 funkce jedním vstupem a jedním výstupem 4 5 6 A = [1,2,3;4,5,6]; v = size(a) v = 2 3 funkce vrátí počet řádků a sloupců matice A. funkce s jedním vstupem a jedním výstupem, výstupem je dvouprvkový řádkový vektor (počet řádků, počet sloupců matice). pokud existuje více výstupních argumentů (prvky vektoru v hranatých závorkách [ ]), počet řádků je přiřazen do prvního a počet sloupce do druhého, např.: [r,s] = size(a) r = 2 s = 3 help něco textová nápověda, např. help sin, help size, apod.

zjednodušují a zpřehledňují program mohou být definovány přímo na příkazovém řádku během interaktivní relace nebo v externích souborech (m-file, přípona.m) lze je volat stejně jako zabudované funkce syntaxe: function [vystup] = nazev(vstup) tělo funkce, příkazy end vstup, výstup nejsou povinné, pokud je výstup jen jeden, nejsou třeba hranaté závorky function vystup = nazev(vstup) vstupních parametrů může být více, oddělují se čárkami function vystup = nazev(a,b,c) klíčové slovo end je možné vynechat v případě zadání funkce v samostatném souboru (m-file) hlavička funkce zajišťuje přenos dat z a do funkce proměnné ve funkci jsou lokální vzhledem k funkci (po skončení posledního příkazu funkce zaniknou), výstupní proměnné zůstanou zachovány volání funkce jejím názvem

Výsledek: Rcelk = 12.200 Vytváření vlastních funkcí v MATLABu, tzv. m-file Menu: File > New > Function (v novějších verzích MATLABu New > Function ) sériové zapojení rezistorů (výpočet výsledného odporu) function vystup=seriove(vstup) vystup = sum(vstup); end R =5 1 R 2 =4.2 R 3 =3 Volání funkce pro 3 rezistory zapojené sériově Ro = [5,4.2,3]; % vektor se zadanými hodnotami odporů Rcelk = seriove(ro) % volání funkce seriove se vstupním parametrem Ro, výstup R

sériové zapojení rezistorů (výpočet výsledného odporu) function vystup=seriove(vstup) vystup = sum(vstup); end Volání funkce pro 5 rezistorů zapojených sériově Ro_jiny = [6,8,4,3,9]; % vektor se zadanými hodnotami odporů R = seriove(ro_jiny) % volání funkce seriove se vstupním parametrem Ro_jiny Výsledek: R = 30 R =6 1 R 2 =8 R 3 =4 R 4 =3 R 5 =9

sériové a paralelní zapojení 2 rezistorů (výpočet výsledného odporu) funkce se dvěma vstupy a výstupem dvouprvkovým vektorem function [Rs,Rp] = seriove_paralelne(rvst1,rvst2) Rs = Rvst1 + Rvst2; Rp = (1/Rvst1+1/Rvst2)^(-1); end Volání funkce: pro R 1 =11 Ω, R 2 =6,5 Ω R1=11; R2=6.5; [Rs,Rp] = seriove_paralelne(r1,r2) Rs = 17.500 Rp = 4.0857 R 1 R 2 R 2 R 1

sériové a paralelní zapojení 2 rezistorů (výpočet výsledného odporu) function [Rs,Rp] = seriove_paralelne(rvst1,rvst2) Rs = Rvst1 + Rvst2; Rp = (1/Rvst1+1/Rvst2)^(-1); end Volání funkce: pro R 1 =5 Ω, R 2 =10 Ω [s,p]=seriove_paralelne(5,10) s = 15 p = 3.3333 nebo pro R 1 =4 Ω, R 2 =4 Ω [x,y]=seriove_paralelne(4,4) x = 8 y = 2 R 1 R 2 R 2 R 1

výpočet obsahu a obvodu kruhu Vytvořená funkce: function [S,o] = obsah_obvod(r) S = pi.*(r.^2); o = 2.*pi.*r; end Soubor je nutné uložit. Save as: obsah_obvod.m Volání funkce v příkazovém okně Command Window [obs,obv] = obsah_obvod(10) obs = 314.16 obv = 62.832

výpočet obsahu a obvodu kruhu whos % - vypíše proměnné držené v operační paměti Name Size Bytes Class Attributes obs 1x1 8 double obv 1x1 8 double r je lokální proměnná (s ukončením funkce zaniká), výstupní proměnné zůstanou zachovány

výpočet obsahu a obvodu kruhu Funkce bez výstupu: function obsah_obvod2(r) S = pi.*(r.^2); o = 2.*pi.*r; disp('obsah'); disp(s); disp('obvod'); disp(o); end Volání funkce v příkazovém okně Command Window obsah_obvod2(5) Obsah 78.5398 Obvod 31.4159 r, S, o lokální proměnné (s ukončením funkce zanikají), výstupní proměnná není whos => po příkazu whos se nevypíše nic

plot() vytváří dvou-dimenzionální grafy. mnoho různých kombinací vstupních argumentů. nejjednodušší formou je plot(y), plot(x,y) Např.: y=[3,8,5,7]; plot(y) pokud je vstupním argumentem vektor y, souřadnice x je vektor, který začíná 1

t = [0, 0.1, 0.4, 0.8, 0.9, 1.5]; y = sin(x); plot(t,y,'*') body zobrazeny jako hvězdičky, pro zobrazení bodu lze použít *, o, x, ^ atp.

t = [0:0.2:2*pi]; y = sin(t); plot(t,y,'o') t = [0:0.2:2*pi]; y = sin(t); plot(t,y)

t = [0:0.01:2*pi]; y = sin(t); plot(t,y,'r') t = [0:1:2*pi]; y = sin(t); plot(t,y,'m')

= přiřazení Operátory pro operace prvek po prvku (operace s maticemi prvek po prvku) + sčítání - odečítání.* násobení prvek po prvku./ dělení prvek po prvku.\ dělení zleva prvek po prvku.^ mocnina prvek po prvku.' překlopení matice (pole) podle hlavní diagonály (např. A.') Operátory pro maticové operace (operace s celými maticemi) * násobení maticové / dělení maticové \ dělení zleva maticové ^ ' mocnina maticová transpozice matice (např. A' ) pozor z komplexních čísel v matici budou čísla komplexně sdružená (z 2+3i bude 2-3i)

Operátory pro operace prvek po prvku (operace s maticemi prvek po prvku) + sčítání A = 2 9 3 6 7 1 2 9 B = 2 5 1 3 3 9 1 8 C = A + B C = 4 14 4 9 10 10 3 17 (Stejný výsledek dostaneme i pomocí příkazu: C = B + A Sčítání matic je komutativní.)

Operátory pro operace prvek po prvku (operace s maticemi prvek po prvku) - odečítání A = 2 9 3 6 7 1 2 9 B = 2 5 1 3 3 9 1 8 D = A B D = 0 4 2 3 4-8 1 1 (Stejný výsledek dostaneme i pomocí příkazu D = -B + A)

Operátory pro operace prvek po prvku (operace s maticemi prvek po prvku).* násobení prvek po prvku A = 2 9 3 6 7 1 2 9 B = 2 5 1 3 3 9 1 8 E = A.* B E = 4 45 3 18 21 9 2 72 (Stejný výsledek dostaneme i pomocí příkazu: E = B.* A Násobení matic prvek po prvku je komutativní.)

Operátory pro operace prvek po prvku (operace s maticemi prvek po prvku)./ dělení prvek po prvku A = 2 9 3 6 7 1 2 9 B = 2 5 1 3 3 9 1 8 Výsledek ve formátu zlomku format rat A./ B 1 9/5 3 2 7/3 1/9 2 9/8 F = A./ B F = 1.00000 1.80000 3.00000 2.00000 2.33333 0.11111 2.00000 1.12500 (Stejný výsledek dostaneme i pomocí příkazu B.\A)

Operátory pro operace prvek po prvku (operace s maticemi prvek po prvku).\ dělení zleva prvek po prvku A = 2 9 3 6 7 1 2 9 B = 2 5 1 3 3 9 1 8 Výsledek ve formátu zlomku format rat A.\ B 1 5/9 1/3 1/2 3/7 9 1/2 8/9 G = A.\ B G = 1.00000 0.55556 0.33333 0.50000 0.42857 9.00000 0.50000 0.88889 (Stejný výsledek dostaneme i pomocí příkazu B./A)

Operátory pro operace prvek po prvku (operace s maticemi prvek po prvku).^ mocnina prvek po prvku A = 2 9 3 6 7 1 2 9 H = A.^2 H = 4 81 9 36 49 1 4 81 (Stejný výsledek dostaneme i pomocí příkazu: A.*A)

Operátory pro operace prvek po prvku (operace s maticemi prvek po prvku).' překlopení dvourozměrného pole úhlopříčně podle hlavní diagonály A = 2 9 3 6 7 1 2 9 K = A.' K = 2 7 9 1 3 2 6 9

Operátory pro operace prvek po prvku (operace s maticemi prvek po prvku).' překlopení dvourozměrného pole úhlopříčně podle hlavní diagonály A = 2 9 3 6 7 1 2 9 K = A.' K = 2 7 9 1 3 2 6 9

Operátory pro operace prvek po prvku (operace s maticemi prvek po prvku) Rozměry matic, se kterými probíhají operace prvek po prvku, musí být stejné, výsledek má také stejnou velikost, např. a = [1,2]; b = [3,4]; 1 řádek, 2 sloupce 1 řádek, 2 sloupce a.* b (.* násobení prvek po prvku) ans(1)=1*3=6 3 8 1 řádek, 2 sloupce ans(2)=2*4=8 Pozn. a * b (* násobení maticové) Nelze: rozměry matic nesouhlasí.

a = [1,2,3,4,5]; a + 5 sčítání prvek po prvku 6 7 8 9 10 Stejný výsledek dostaneme i pomocí : 5 + a a.' 1 2 3 4 5 a.'+ 5 6 7 8 9 10 sčítání prvek po prvku Stejný výsledek dostaneme i pomocí : 5 + a.' Rozměry vektoru, se kterým probíhají operace prvek po prvku, jsou stejné jako výsledek.

a = [1,2,3,4,5]; b = [6,7,8,9,10]; a + b sčítání prvek po prvku 7 9 11 13 15 Stejný výsledek dostaneme i pomocí : b + a a.' 1 2 3 4 5 b.' 6 7 8 9 10 a.'+ b.' 5 6 7 8 9 sčítání prvek po prvku Stejný výsledek dostaneme i pomocí : b.' + a.' Rozměry vektorů, se kterými probíhají operace prvek po prvku, jsou stejné, výsledek má také stejnou velikost

a = [1,2,3,4,5]; b = [6,7,8,9,10]; a + b.' sčítání prvek po prvku % verze R2015a Error using + Matrix dimensions must agree. a + b.' sčítání prvek po prvku % verze R2017b 7 8 9 10 11 8 9 10 11 12 9 10 11 12 13 10 11 12 13 14 11 12 13 14 15 a.' 1 2 3 4 5 b.' 6 7 8 9 10 Stejný výsledek dostaneme i pomocí : b.' + a % všechny verze [b(1)+a(1,:);b(2)+a(1,:);b(3)+a(1,:);b(4)+a(1,:);b(5)+a(1,:)]

a = [1,2,3,4,5]; a + b.' sčítání prvek po prvku verze R2017b 1 2 3 4 5 6 7 8 9 10 11 7 8 9 10 11 12 8 9 10 11 12 13 9 10 11 12 13 14 10 11 12 13 14 15 b.' 6 7 8 9 10 Stejný výsledek dostaneme i pomocí : b.' + a % všechny verze [b(1)+a(1,:);b(2)+a(1,:);b(3)+a(1,:);b(4)+a(1,:);b(5)+a(1,:)] Stejný výsledek dostaneme i pomocí : [a(1,:)+b(1);a(1,:)+b(2);a(1,:)+b(3);a(1,:)+b(4);a(1,:)+b(5)]

a = [1,2,3,4,5]; b = [6,7,8,9,10]; a.' + b sčítání prvek po prvku % verze R2015a Error using + Matrix dimensions must agree. a.' + b sčítání prvek po prvku % verze R2017b 7 8 9 10 11 8 9 10 11 12 9 10 11 12 13 10 11 12 13 14 11 12 13 14 15 a.' 1 2 3 4 5 b.' 6 7 8 9 10 Stejný výsledek dostaneme i pomocí : b + a.' % všechny verze [a(1)+b(1,:);a(2)+b(1,:);a(3)+b(1,:);a(4)+b(1,:);a(5)+b(1,:)]

b = [6,7,8,9,10]; a.' + b sčítání prvek po prvku % verze R2017b 6 7 8 9 10 1 7 8 9 10 11 2 8 9 10 11 12 3 9 10 11 12 13 4 10 11 12 13 14 5 11 12 13 14 15 a.' 1 2 3 4 5 Stejný výsledek dostaneme i pomocí : b.' + a % všechny verze [a(1)+b(1,:);a(2)+b(1,:);a(3)+b(1,:);a(4)+b(1,:);a(5)+b(1,:)] Stejný výsledek dostaneme i pomocí : [b(1,:)+a(1);b(1,:)+a(2);b(1,:)+a(3);b(1,:)+a(4);b(1,:)+a(5)]

M = [1,2,3;4,5,6]; n = [7;8]; M + n sčítání prvek po prvku % verze R2015a Error using + Matrix dimensions must agree. M + n sčítání prvek po prvku % verze R2017b 8 9 10 12 13 14 % všechny verze [n(1)+m(1,:);n(2)+m(2,:)] Stejný výsledek dostaneme i pomocí : [M(1,:)+n(1);M(2,:)+n(2)] M = 1 2 3 4 5 6 n = 7 8 Stejný výsledek dostaneme i pomocí : n + M

a = [1,2,3,4,5]; a.* 5 násobení prvek po prvku 5 10 15 20 25 Stejný výsledek dostaneme i pomocí : 5 + a a.' 1 2 3 4 5 a.'.* 5 5 10 15 20 25 násobení prvek po prvku Stejný výsledek dostaneme i pomocí : 5 + a.' Rozměry vektoru, se kterým probíhají operace prvek po prvku, jsou stejné jako výsledek.

a = [1,2,3,4,5]; b = [6,7,8,9,10]; a.* b násobení prvek po prvku 6 14 24 36 50 Stejný výsledek dostaneme i pomocí : b.* a a.' 1 2 3 4 5 b.' 6 7 8 9 10 a.'.* b.' násobení prvek po prvku 6 14 24 36 50 Stejný výsledek dostaneme i pomocí : b.'.* a.' Rozměry matic, se kterými probíhají operace prvek po prvku, jsou stejné, výsledek má také stejnou velikost

a = [1,2,3,4,5]; b = [6,7,8,9,10]; a.* b.' násobení prvek po prvku % verze R2015a Error using.* Matrix dimensions must agree. a.* b.' násobení prvek po prvku % verze R2017b 6 12 18 24 30 7 14 21 28 35 8 16 24 32 40 9 18 27 36 45 10 20 30 40 50 a.' 1 2 3 4 5 % všechny verze [a(1).*b(1,:);a(2).*b(1,:);a(3).*b(1,:);a(4).*b(1,:);a(5).*b(1,:)] b.' 6 7 8 9 10 Stejný výsledek dostaneme i pomocí : b.'.* a

a = [1,2,3,4,5]; a.* b.' násobení prvek po prvku verze R2017b 1 2 3 4 5 6 6 12 18 24 30 7 7 14 21 28 35 8 8 16 24 32 40 9 9 18 27 36 45 10 10 20 30 40 50 b.' 6 7 8 9 10 Stejný výsledek dostaneme i pomocí : b.'.* a % všechny verze [b(1).*a(1,:);b(2).*a(1,:);b(3).*a(1,:);b(4).*a(1,:);b(5).*a(1,:)] Stejný výsledek dostaneme i pomocí : [a(1,:).*b(1);a(1,:).*b(2);a(1,:).*b(3);a(1,:).*b(4);a(1,:).*b(5)]

a = [1,2,3,4,5]; b = [6,7,8,9,10]; a.'.* b násobení prvek po prvku % verze R2015a Error using.* Matrix dimensions must agree. a.'.* b násobení prvek po prvku % verze R2017b 6 7 8 9 10 12 14 16 18 20 18 21 24 27 30 24 28 32 36 40 30 35 40 45 50 a.' 1 2 3 4 5 % všechny verze [a(1).*b(1,:);a(2).*b(1,:);a(3).*b(1,:);a(4).*b(1,:);a(5).*b(1,:)] b.' 6 7 8 9 10 Stejný výsledek dostaneme i pomocí : b.* a.'

b = [6,7,8,9,10]; a.'.* b násobení prvek po prvku % verze R2017b 6 7 8 9 10 1 6 7 8 9 10 2 12 14 16 18 20 3 18 21 24 27 30 4 24 28 32 36 40 5 30 35 40 45 50 a.' 1 2 3 4 5 Stejný výsledek dostaneme i pomocí : b.'.* a % všechny verze [a(1).*b(1,:);a(2).*b(1,:);a(3).*b(1,:);a(4).*b(1,:);a(5).*b(1,:)] Stejný výsledek dostaneme i pomocí : [b(1,:).*a(1);b(1,:).*a(2);b(1,:).*a(3);b(1,:).*a(4);b(1,:).*a(5)]

M = [1,2,3;4,5,6]; n = [7;8]; M.* n násobení prvek po prvku % verze R2015a Error using.* Matrix dimensions must agree. M.* n násobení prvek po prvku % verze R2017b 7 14 21 32 40 48 % všechny verze [n(1).*m(1,:);n(2).*m(2,:)] Stejný výsledek dostaneme i pomocí : [M(1,:).*n(1);M(2,:).*n(2)] M = 1 2 3 4 5 6 n = 7 8 Stejný výsledek dostaneme i pomocí : n.* M

M = [1,2,3;4,5,6]; n = [7;8]; M - n odečítání prvek po prvku % verze R2015a Error using - Matrix dimensions must agree. M - n odečítání prvek po prvku % verze R2017b -6-5 -4-4 -3-2 % všechny verze [M(1,:)- n(1);m(2,:)- n(2)] Stejný výsledek dostaneme i pomocí : [-n(1) + M(1,:);-n(2) + M(2,:)] M = 1 2 3 4 5 6 n = 7 8 Stejný výsledek dostaneme i pomocí : -n + M Podobné změny nastaly u operací./ a.\

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Aby matice bylo možno násobit, musí být počet sloupců první matice stejný jako počet řádků druhé matice. Výsledek má počet řádek jako první matice a počet sloupců jako druhá matice. Např. máme-li: C = A * B (m,p) = (m,n) * (n,p) m,n,p počty řádků a sloupců příslušných matic A, B, C - musí mít matice A tolik sloupců (n sloupců), jako má matice B řádků (n řádků), jinak nelze násobit maticově, - výsledná matice C má tolik řádků, jako měla A (m řádků) a má tolik sloupců jako měla B (p sloupců).

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové C = A * B (m,p) = (m,n) * (n,p) m,n,p počty řádků a sloupců příslušných matic A, B, C D = B * A (???) = (n,p) * (m,n) - nelze násobit maticově, m p A * B B * A (Maticové násobení není komutativní!!!)

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Příklad: C = A * B (3,4) = (3,3) * (3,4) - matice A má 3 sloupce, tj. stejný počet jako má matice B řádků => lze násobit maticově: A = B = C = 1 2 3 10 15 20 25 220 250 280 310 4 5 6 30 35 40 45 490 565 640 715 7 8 9 50 55 60 65 760 880 1000 1120 1 * 10 + 2 * 30 + 3 * 50 = 220 1 * 15 + 2 * 35 + 3 * 55 = 250

Operátory pro maticové operace (operace s celými maticemi) atd. - první řádek z A se všemi sloupci B. 1 * 20 + 2 * 40 + 3 * 60 = 280 1 * 25 + 2 * 45 + 3 * 65 = 310 A potom totéž pro druhý řádek A, opět se všemi sloupci B. 4 * 10 + 5 * 30 + 6 * 50 = 490 4 * 15 + 5 * 35 + 6 * 55 = 565 4 * 20 + 5 * 40 + 6 * 60 = 640 4 * 25 + 5 * 45 + 6 * 65 = 715 A dále totéž i pro třetí řádek A, opět se všemi sloupci B 7 * 10 + 8 * 30 + 9 * 50 = 760 7 * 15 + 8 * 35 + 9 * 55 = 880 7 * 20 + 8 * 40 + 9 * 60 = 1000 7 * 25 + 8 * 45 + 9 * 65 = 1120 až dostaneme výslednou matici C

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové K = L = 1 2 5 6 3 4 7 8 Příklad: M = K * L N = L * K (2,2) = (2,2) * (2,2) (2,2) = (2,2) * (2,2) první matice má 2 sloupce, tj. stejný počet jako má druhá matice řádků => v obou případech lze násobit maticově: M = N = 19 22 23 34 43 50 31 46 Pro čtvercové matice K, L platí rovněž K * L L * K, pro K * L bude jiný výsledek než pro L * K. Maticové násobení není komutativní!!!