next up previous
Next: 1.2 Odhady momentů - Up: 1. Cvičení 1 : Previous: 1. Cvičení 1 :

Subsections

1.1 Úvod do MATLABu pro začátečníky

Matlab lze používat jednoduše jako symbolický kalkulátor.

octave:11> a = 0.5 + 3*j
a =  0.50000 + 3.00000i
octave:12> b = 5
b =  5
octave:13> c = a*b
c =   2.5000 + 15.0000i
Příkazem who lze vypsat definované symboly. Příkazem clear lze všechny dosud definované symboly smazat (chcete-li smazat pouze některé, použijte použijte clear proměnná). Nápovědu k jakémukoli příkazu obdržíte pomocí help příkaz. Zkuste např. :
octave:4> who
*** local user variables:

__nargin__  a           b           c

octave:5> clear
octave:6> who

1.1.1 Počítání s vektory a maticemi

Matice a vektory (lze si představit jako matici s jedním z rozměrů rovným jedné) lze zadávat pomocí operátoru složení "[]", kde jako odělovač položek v rámci řádku slouží "," a jako oddělovač řádků ";". Vyzkoušejte například zadat:

octave:7> a = [2,3]
a =

   2   3

octave:8> A = [1,2;3,4]
A =

   1   2
   3   4

octave:9> b = [1;2]
b =

   1
   2


Poznámka: Operátor skládání není omezen pouze na skaláry, ale lze použít i na matice:

octave:10> [A,b;[5,6,7]]
ans =

   1   2   1
   3   4   2
   5   6   7


Potřebujeme-li transponovat, lze použít operátoru "'" (hermitovská tranpozice). Použití operátoru "*" na matice má význam maticového násobení.

octave:16> c = a'
c =

   2
   3

octave:17> A*c
ans =

    8
   18

octave:20> b'*c
ans =  8
V posledním kroku jde vlastně o skalární součin vektorů $ \mathbf{b}$ a $ \mathbf{c}$.

1.1.2 Některé speciální matice

eye(n)
jednotková matice o rozměru $ n\times n$.
ones(r,s)
matice jednotek o rozměru $ r\times s$. Co je výsledkem následující posloupnosti příkazů?
octave:28> c = ones(2,1)
c =

   1
   1

octave:29> c'*A*c
ans =  10
zeros(r,s)
matice nul o rozměru $ r\times s$.
randn(r,s)
matice náhodných čísel o rozměru $ r\times s$, jednotlivá náhodná čísla jsou generována nezávisle z normálního rozložení o nulové střední hodnotě a jednotkovém rozptylu.
rand(r,s)
totěž co randn(r,s) pouze se jedná o rovnoměrné rozdělení na $ <0,1>$.
aritmetické posloupnosti
(vhodné zejména pro indexování) se jednoduše vytvářejí pomocí operátoru ":", např:
octave:22> n = 1:5
n =

  1  2  3  4  5
linspace(a,b,N)
aritmetická posloupnost začínající v $ a$ a končící v $ b$ délky $ N$.

1.1.2.0.1 Operátor selekce

Potřebujeme-li pracovat pouze s některými prvky matice, lze použít operátoru selekce výraz(vektor indexů řádků,vektor indexů sloupců). Například:
octave:23> A(1,2)
ans =  2
octave:24> A(2,[1,2])
ans =

   3   4
Poslední případ (výběr druhého sloupce matice $ \mathbf{A}$) lze jednodušeji zapsat právě pomocí operátoru ":" takto A(2,1:2) nebo A(2,:).

1.1.3 Dávkové zpracování

Abychom se vyhli zbytečnému opakovanému zadávání příkazů, umožňuje Matlab rovněž dávkové zpracování příkazů ve formě takzvaných "m-files" (soubory obsahující příkazy mají příponu .m). Zkusíme například výpočítat faktoriál. Vytořte si v adresáři /work podadresář ada/Váš login takže výsledek bude vypadat např. /work/ada/vodickap. Přesuňte se do něj v příkazovém řádku Matlabu (cd normálně funguje). Ve zmíněném adresáři vytvořte soubor fact.m obsahující
x = 5; % bude se pocitat faktorial 5
f = 1; % faktorial
for n=1:x
  f = f*n;
end
f
Středník na konci řádku slouží k potlačení výpisu. Znakem "%" se uvozuje komentář (jednořádkový). Jak jste jistě poznali klíčové slovo for otvírá a klíčové slovo end uzavírá for-cyklus. Obecně místo 1:x lze použít libovolný vektor. Tělo cyklu se pak provede postupně pro každou složku vektoru. Do příkazového řádku pak jenom zadejte fact a měl by se vypsat $ 5!$. Poznamenejme, že klíčová slova for, if, else, end atd. fungují i příkazové řádce, jenom se to pak hůře edituje.


next up previous
Next: 1.2 Odhady momentů - Up: 1. Cvičení 1 : Previous: 1. Cvičení 1 :
Mirek 2006-12-12