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.       

Transpozice

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.  

Funkce sum

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.


Funkce diag

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.  
            


Funkce size

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.