Slovník | Vyhledávání | Mapa webu
 
Základy informatiky pro biologyVýpočetní matematické systémy Jak pracovat s MATLABem Manipulace s maticemi Další funkce pro manipulaci s maticemi

Logo Matematická biologie

Další funkce pro manipulaci s maticemi

Dvojí úlohu má funkce diag(). Její aplikací na vektor získáme diagonální matici s argumentem na hlavní diagonále. Pokud funkci použijeme na matici, výstupem je vektor jejích diagonálních prvků.  Pokud chceme pracovat s jinou diagonálou než s hlavní, můžeme použít jako druhý parametr funkce diag() číslo diagonály, přičemž kladná čísla se použijí pro diagonály nad hlavní diagonálou a záporná pod ní.

>> A = round(10*rand(5))    celočíselná matice s prvky od 0 do 10

>> x = diag(A)    vektor diagonálních prvků

>> B = diag(x,2)    nulová matice s prvky x na 2. diagonále nad hlavní diagonálou

 

 

>> D = diag(diag(A))    diagonální matice

 

Pomocí funkcí tril() a triu() vyrobíme z dané matice dolní nebo horní trojúhelníkovou matici, přičemž je možné podobně jako u funkce diag() použít další nepovinný parametr pro posunutí diagonály.

>> L1 = tril(A)    dolní trojúhelníková matice

 

Funkce max() hledá maximální prvek vektoru, pokud na výstupu uvedeme i druhý výstupní parametr, uloží se do něj index maximálního prvku. Při použití funkce max() na matici se hledají maximální prvky v jednotlivých sloupcích, do volitelného druhého výstupního parametru jsou ukládány řádkové indexy maximálního prvku v daném sloupci.

Podobně funguje funkce min().

>> [m, ind] = min(x)    minimální prvek vektoru x i se svou pozicí

>> A = rand(4)    náhodná matice

 

U komplexních matic se maximum či minimum hledá mezi absolutními hodnotami prvků.

>> K = round(2*rand(3)) + i*round(2*rand(3))    náhodná komplexní matice s celočíselnými hodnotami reálné a imaginární části

 

>> absK = abs(K)    absolutní hodnoty prvků komplexní matice K

>> [m, r] = min(K)    minima komplexní matice K a jejich řádkové indexy

>> [m, ind] = max(u)    v případě více shodných maximálních prvků je vybrán prvek s nižším indexem

 

K vzestupnému seřazení vektoru se používá funkce sort(), u komplexních hodnot se  řazení provádí podle absolutních  hodnot. Do druhého nepovinného výstupního parametru je umístěna  třídicí permutace indexů. Při použití funkce sort() na matice dochází k řazení v rámci jednotlivých sloupců.

>> u(ind)    odpovídá seřazenému vektoru

 

Pro sčítání a násobení prvků vektoru slouží funkce sum() a prod(). Aplikujeme-li tyto funkce na matici, příslušná operace je provedena po sloupcích.

>> f = prod(1:5)    faktoriál čísla 5 

f =
   120

Poznámka. Obecně lze spočítat příkazem prod(1:n) i pro n=0, protože součin přes prázdnou matici je roven 1.

>> f = prod(1:0)
f =
   1

Pro zjištění součtu, popř. součinu, všech prvků matice je třeba funkci sum(), popř. prod(), použít dvakrát.

>> soucet = sum(sum(A))    součet všech prvků matice A
soucet =
        10

Poznámka. Pro připomenutí, pro zjištění rozměrů matice lze použít funkci size() ve dvojí formě - s = size(A) nebo [r, sl] = size(A). Funkce length() vrací délku řádkového či sloupcového vektoru. Pokud ji aplikujeme na matici, dostáváme maximální z rozměrů; je ekvivalentní příkazu max(size(A)).

 
vytvořil Institut biostatistiky a analýz Lékařské fakulty Masarykovy univerzity