Základní operace s maticemi
Aritmetické operace
Sčítat (a odčítat) můžeme jen matice stejného rozměru.
Součet:
Nadefinujme si například následující dvě matice A a B.
Příklad 3.3.A - součet matic
// definuji matici A a B
A = [1 2 3; 4 5 6; 1 -1 0]
A =
1. 2. 3.
4. 5. 6.
1. - 1. 0.
B = [1 1 1; 2 3 -1; 5 7 -2]
B =
1. 1. 1.
2. 3. - 1.
5. 7. - 2.
// součet matic - sečte prvky se stejným indexem
A+B
ans =
2. 3. 4.
6. 8. 5.
6. 6. - 2.
Rozdíl:
Příklad 3.3.B - rozdíl matic
// rozdíl matic - odečte prvky se stejným indexem
A-B
ans =
0. 1. 2.
2. 2. 7.
- 4. - 8. 2.
Násobení:
Matici rozměrů M×N můžeme vynásobit libovolnou maticí rozměrů N×P,
přičemž výsledkem je matice o rozměrech M×P. Násobení probíhá tak, že
každé číslo výsledné matice získáme jako skalární součin příslušného
řádku první matice s příslušným sloupcem druhé matice.
Příklad 3.3.C - násobení matic
// násobení matic
A*B
ans =
20. 28. - 7.
44. 61. - 13.
- 1. - 2. 2.
B*A
ans =
6. 6. 9.
13. 20. 24.
31. 47. 57.
Transponovaná matice je matice, kterou doplníme na čtvercovou matici, ta se otočí kolem hlavní diagonály a odebere se přidaná část. To znamená, že z matice 3x2 se stane matice 2x3. Pro transpozici se používá znak '.
Příklad 3.3.D - tranponovaná matice
// transponovaná matice A, kde se řádky přehodí za sloupce a sloupce za řádky
A'
ans =
1. 4. 1.
2. 5. - 1.
3. 6. 0.
Syntaxe: |
y = sum(x)
y = sum(x,'r') nebo y = sum(x,1)
y = sum(x,'c') nebo y = sum(x,2)
y = sum(x,'m')
|
Funkce sum(x) udělá součet všech prvků matice.
Funkce y = sum(x,'r') (nebo analogicky y = sum(x,1) ) je součet prvků ve sloupci y(j) = sum(x (:, j) ). Výsledkem je řádkový vektor.
Funkce y = sum(x,'c') (nebo analogicky y = sum(x,2) ) je součet prvků v řádku y(i) = sum(x(i,:)) . Výsledkem je sloupcový vektor.
Součet všech prvků matice A:
Příklad 3.3.E - funkce sum
sum(A)
ans =
21.
// součet sloupců matice A:
y = sum(A,'r')
y =
6. 6. 9.
Syntaxe: |
[y] = diag(vm, [k])
|
kde vm je vektor nebo matice, k je číslo diagonály (default hodnota je 0). Pro hlavní diagonálu je k = 0, k > 0 je pro diagonály nad hlavní diagonálou a k < 0 je pro diagonály pod hlavní diagonálou.
Funkce diag (vm) vypíše prvky ležící na hlavní diagonále.
Příklad 3.3.F - funkce diag
diag(A)
ans =
1.
5.
0.
// vypíšeme diagonálu ležící vedle hlavní diagonály o jedna vpravo
diag(A,1)
ans =
2.
6.
// vypíšeme diagonálu ležící vedle hlavní diagonály o jedna vlevo
diag(A,-1)
ans =
4.
- 1.
Syntaxe: |
y=size(x)
[nr,nc]=size(x)
|
Funkce size (x) určí velikost (rozměr) matice.
Výsledkem je vektor y o rozměru 1x2 (počet řádků, počet sloupců).
Výstup si můžeme definovat také pomocí proměnných, kde nr je počet řádků, nc je počet sloupců.
Příklad 3.3.G - funkce size
// nadefinuji matici M o rozměru 3x2
M = [1 2; 3 4; 5 6]
M =
1. 2.
3. 4.
5. 6.
// zjistíme rozměr matice
size(M)
ans =
3. 2.
// rozměr matice, který se uloží do proměnných
[radku, sloupcu]=size(M)
sloupcu =
2.
radku =
3.