Matlab (MATrix
LABoratory)
Matlab je akronym pre MATrix LABoratory. Systém sa skladá zo
základného balíka Matlab/Simulink (príslušná verzia) a z takzvaných Toolboxov.
Základná verzia Matlabu obsahuje funkcie orientované na prácu s maticami,
čítanie/ukladanie dát, grafické výstupy, ... a bohatá knižnica Toolboxov pokrýva
množstvo problémov ako napríklad teóriu sytémov (analýza), teóriu riadenia
(syntéza), optimalizáciu, neurónové siete, identifikáciu, fuzzy systémy,
spracovanie signálov, riadenie v reálnom čase a mnohé ďaľšie. My budeme využívať
hlavne Control Toolbox.
V tomto krátkom úvode sa oboznámite s niektorými základnými
charakteristikami programu. Viac sa dozviete v helpe programu a postupne počas
cvičení z Teórie systémov. Odporúčame Vám vyskúšať si v Matlabe všetky naznačené
príkazy, aby ste si ich čo najlepšie osvojili. Počas semestra Vám to môže iba
pomôcť.
- Názvy premenných v Matlabe musia vždy začínať
písmenom. Maximálna dĺžka názvu môže byť až 19 znakov.
- Treba rozlišovať malé a veľké písmená. Názvy
"poloha" a "Poloha" označujú dve rôzne premenné.
- V Matlabe nie je treba deklarovať premenné,
ktoré sa budú neskôr používať.
- Niektoré premenné sú už vnútorne v programe
preddefinované. Ide napr. o pi,
Inf-nekonečno, NaN-Not A
Number (napr. po delení nulou), I,
j- komplexné premenné.
- Výskúšajte si použitie bodkočiarky za
príkazom. Aký je rozdiel medzi príkazom A=[1 2;4 5] a A=[1 2;4 5]; ?
- Zvyknite si používať veľké písmená pre matice
a malé pre ostatné premenné.
- Premenné sa priebežne uchovávajú v pracovnom
priestore Matlabu (Workspace). Keď chceme zistiť, čo je v ňom uložené, môžeme
použiť príkazy - who a
whos. (Uložte do pracovného priestoru (pokiaľ ešte
nemáte) maticu A, ďalej premennú napr. b=2 a reťazec napr. c='ahoj'. Zistite,
aký je rozdiel medzi príkazmi who a
whos)
- Ak chceme uchovať obsah workspace do
súboru, tak na to použijeme položku Save Workspace As, ktorá sa
nachádza v podmenu File. Na uchovanie konkrétnych premených, použijeme príkaz
save. Opačnú funkciu má príkaz load.
- Vymazanie pracovného priestoru sa robí
pomocou príkazu clear,
ktorý ho vymaže kompletne celý. Pokiaľ chceme vymazať len premenné, použijeme
clear variables a ak chceme vymazať len maticu A napíšeme
clear A
- Zobrazenie výsledkov na obrazovke je možné
robiť v štyroch formátoch. Zmena formátu sa robí pomocou príkazu
format. Ako default je nastavený formát format long; Vyskúšajte si spôsoby rôzneho zobrazenia hodnôt
na Ludolfovom čísle. Napr.:
format long; pi
format short e; pi
- V Matlabe je možné používať štandarné
funkcie ako v iných programovacích jazykoch: sin,
cos, asin,
acos, tan,
atan, abs,sqrt,imag,
real, conj,
log, log10,
exp
- Jednotlivé príkazy a funkcie Matlabu možno
používať priamo z príkazového riadku alebo vo vnútri vlastných vytvorených
funkcií.
- Nápovedu k matlabovskej funkcii (príkazu),
spôsob použitia a prípadne ilustračný príklad je možné dostať, ak do
príkazového riadku Matlabu napíšeme
help meno_funkcie, resp. help
meno_prikazu (napr.: help while)
- Komentáre vo funkciách sa oddeľujú s
%.
Práca s
maticami
- Maticu môžme zadávať v jednom riadku, keď
prvky v riadku oddeľujeme bodkočiarkou A=[1 2;4 5] alebo vo viacerých riadkoch
A=[1 2
4 5]
Nesmieme však zabudnúť na uzatvorenie matice. Zásada
je, že prvky v riadku sa navzájom oddeľujú medzerou alebo jednoduchou čiarkou
a jednotlivé riadky sa medzi sebou oddeľujú bodkočiarkou alebo prejdením do
ďalšieho riadku.
- Rozmer matice sa určuje príkazom
size(A)
- Zmena prvku matice sa robí jeho priamym
indexovaním A(2,2)=3
- Ak máme maticu A rozmeru 2x2, tak príkaz
A(3,3)=6 spôsobí rozšírenie rozmeru matice a automatické
doplnenie nulami. Vyskúšajte si to.
- automatické generovanie vektorov: Vyskúšajte
si, čo urobia príkazy k=1:10 a k=1:0.25:2
- Ak chceme k matici A pridať nový riadok, nie
je treba, aby sme opisovali aj celú pôvodnú maticu. Stačí použiť príkaz
A=[A; [7 8 9]] . Pozor však na rozmer matice!!! Ako by ste pridali k
matici stĺpec?
- Matlab umožňuje aj generovanie submatice z
pôvodnej matice. Príkaz B=A(2:3,1:3) spôsobí, že z matice A sa zoberie 2. až 3.
riadok a 1. až 3. stĺpec a výsledok sa priradí matici B. Príkaz
C=A(1,:) priradí premennej C 1.riadok matice A a všetky
jej stĺpce. Vyskúšajte si to.
- Vyskúšajte si generovanie špeciálnych matíc
pomocou príkazov eye(n),
eye(B), zeros(n),
zeros(n,m), ones,
rand, kde n a m označuje rozmer matice.
- S maticami môžeme robiť klasické aritmetické
operácie sčítanie "+", odčítanie "-", násobenie "*", transponovanú
maticu " ' ".
- Matlab umožňuje robiť delenie matíc sprava aj
zľava (Pri riešení rovnice yP=Q
použijeme delenie sprava
y=Q/P a pri riešení rovnice
Px=Q použijeme delenie zľava x=P\Q)
- Zadefinujte si maticu A a B a urobte
naznačenú operáciu "po prvkoch" A.*B,
A.^2. Aký je rozdiel medzi ňou a klasickým násobením
a umocňovaním matíc?
Práca s
polynómami
- V Matlabe môžeme pracovať aj s polynómami.
Potrebujeme si ich však do neho vhodne zapísať. Zápis sa robí v podobe
vektorov a tak polynóm p=s2+5s+6 napíšeme ako p=[1 5 6].
Polynóm r=s2+6 zapíšeme ako r=[1 0 6].
- Vyčíslenie hodnoty polynómu sa robí pomocou
príkazu polyval(p,1).
- výpočet koreňov polynómu - roots(p)
- vytvorenie polynómu z jeho koreňov -
poly([-4 -5])
- výpočet polynómu charakteristickej rovnice -
poly(B)
- násobenie polynómov - conv(p1,p2)
- delenie polynómov - deconv(p1,p2), [q,r]=deconv(p1,p2), kde q je celá časť a r zvyšok po delení
Grafy
- Pokúsme sa teraz vykresliť si grafy funkcií
napr. y1=sin(x), y2=cos(x)
- Najprv si určíme hodnoty, v ktorých budeme
vynášať funkčné hodnoty x=[0:0.1:1]'; a potom si ich aj vypočítame y1=sin(x); y2=cos(x);
- Príkazom [x y2] si
ich môžeme číselne vypísať na obrazovku
- Vykreslenie sa robí pomocou príkazu
plot(x,y2)
- názov obrázka: title('Graf cos(x) ako funkcia x')
- popísanie osí a mriežka:
xlabel('x'); ylabel('y');
grid
- ľubovolný text do obrázku text(0.1,0.75,'toto je graf')
- V Matlabe môžeme vykresľovať na jednu
obrazovku až 4 nezávislé grafy. Príkaz subplot(221),
plot(x,y1,'--',x,y2,'-') označuje, že
obrazovku si rozdelíme na maticu 2x2 a do jej prvej časti (určuje to trojica
číslic 221) budeme vykresľovať graf, ktorý je špecifikovaný príkazom
plot.
- Môžeme používať viaceré typy čiar: plnú '
-' ,čiarkovanú ' --' ,bodkočiarkovanú '
-.' ,bodkovanú ' :' . Farby čiar
rozlišujeme počiatočnými písmenami názvov v angličtine, napr. 'r' označuje
červenú farbu.