Rozumíme syntaxi MATLABu
Výhody maticového zápisu
 Tisk

V MATLABu je matice představována obdélníkovým polem čísel. Mezi speciální případy patří pole (matice) velikosti 1x1, která se nazývá skalár, a dále matice s 1 řádkem nebo jedním sloupcem zvané vektory.


Zadávání matic

Matice je možné zadávat několika způsoby:


Obecně pro matice platí:

Vytvořenou matici můžeme přiřadit do zvolené proměnné, jinak se automaticky uloží do ans. K jednotlivým prvkům matice přistupujeme přes indexy zapsané v kulatých závorkách za názvem příslušné matice. Indexy řádkové od sloupcových oddělujeme čárkou. Index je vždy přirozené číslo (tedy začínáme číslovat od 1). K poslednímu prvku můžeme přistupovat přes implicitní označení end.


Nyní uvedeme příklad zadání matice seznamem jejích prvků, ostatní body budou postupně probrány v následujících odstavcích, článkách a kapitolách.

Obrázek 1. Zadávání matice




Prázdnou matici definujeme prázdnými hrantými závorkami.

Obrázek 2. Prázdná matice




Skaláry zadáváme pouhým přiřazením do proměnné (námi zvolené nebo standartní ans).

Obrázek 3. Zadávání skaláru




Vektory je možné generovat více způsoby

po prvcích. Je výhodné, pokud znáte krok, o který se prvky zvětšují (zmenšují). Při generování pomocí operátoru dvojtečka není nutné psát hranaté závorky.

Obrázek 4. Generování vektoru







Výběr podmatice

Z již existující matice je možno pomocí tzv. dvoutečkové konvence vybrat libovolnou podmatici, vektor či prvek. Jak již bylo řečeno v předchozím odstavci, k prvkům matice přistupujeme přes indexy. Chceme-li pracovat s posledním prvkem pole, které má např. proměnnou délku, s výhodou použijeme předdefinovanou proměnnou end.


Vrátíme se k matici M definované o pár řádků výš a ukážeme si na ní několik způsobů výběru podmatice.


Obrázek 5. Výběr prvku z matice



Obrázek 6. Výběr vektoru z matice



výběr prvního sloupce z matice M, výběr posledního sloupce z matice M

Obrázek 7. Výběr vektoru z matice




Obrázek 8. Výběr podmatice M2 a M3




Obdobná pravidla platí pro

Obrázek 9. přidání řádku a slouce




Obrázek 10. Přesouvání řádků a sloupců v matici




Obrázek 11. Odebrání řádku či sloupce z matice





Prvkové a maticové operace


Maticové operace aneb respektujeme pravidla lineární algebry


Zadejme matici komplexních čísel C:

Obrázek 12. Komplexní matice




Takovou matici je možné transponovat buď obyčejným způsobem pomocí operátorů tečka a apostrof nebo Hermitovsky. O Hermitovsky transponovaná matice má navíc čísla komplexně sdruženými. Provádí se pomocí operátoru apostrof.

Obrázek 13. Hermitovská transpozice a transpozice matice




Sčítání, odečítání matic - sčítáme, odečítáme matice shodných rozměrů

Obrázek 14. Součet a rozdíl matic




Násobení matic - respektujeme pravidla pro násobení matic

Obrázek 15. Součin matic




Dělení matic - opět dbáme na správné rozměry jednotlivých matic. V MATLABu je možné použít i zpětné lomeno. Ovšem pozor, A/B není totéž, co B\A.


A = [1 2 3; 4 5 6];

B = [1 1 1; 0 1 0];

Obrázek 16. Podíl matic




Inverzní matice - inverzní matici je možné tvořit několika způsoby


Pozn. A = A/I = I\A


Umocňování (pouze pro čtvercové matice)

A^n

A^2 = A*A


Mezi další užitečné příkazy patří funkce pro zjišťování velikosti vektoru a matice

funkce length(v) - vrací délku vektoru v, tj. počet jeho prvků

funkce size(C) - vrací velikost matice C, tj. počet jejích řádků a sloupců

Obrázek 17. Dimenze matice




Prvkové operace provádíme pomocí operátoru tečka.

Násobení, resp. mocnění matic po prvcích odpovídá operaci, kdy se násobí, resp. umocňjí pouze prvky na odpovídajících pozicích. Pro vektory platí následující vzorce, pro matice bychom psali analogické.


v3 = v1.*v2 = [v1(1)*v2(1), v1(2)*v2(2), ..., v1(n)*v2(n)]

v4 = v1.^k = [v(1)^k, v(2).^k, ... ,v(n)^k]


Následující příklad nám ukáže rozdíl mezi prvkovými a maticovými operacemi. Využili jsme matice definované v předchozích ukázkách.

Obrázek 18. Prvkové a maticové operace




Speciální matice

MATLAB obsahuje řadu předdefinovaných funkcí, které usnadňují zadávání matic. Jako parametr mají tyto funkce vždy počet řádků a sloupců požadované výsledné matice. V případě čtvercové matice stačí zadat pouze jeden parametr.


rand(m,n) - matice náhodných čísel z intervalu <0;1>, rovnoměrné rozdělení

randn(m,n) - matice náhodných čísel z intervalu <0;1>, normální rozdělení

eye(m,n) - jednotková matice

ones(m,n) - matice nul

zeros(m,n) - matice jedniček


diag(v) - diagonální matice s vektorem v na hlavní diagonále