M-súbory
v systéme MATLAB
1. Čo je M-súbor
Okrem toho, že MATLAB sa dá používať
ako dobrá sofistikovaná kalkulačka, jeho hlavné možnosti spočívajú v práci s
vlastnými programami a podprogramami. Editujeme ich ako samostatné jednotky -
tzv. M-súbory, buď priamo v
prostredí MATLABu alebo v akomkoľvek textovom editore a ukladáme vo vhodnom
adresári s koncovkou .m . Takto je k nim zabezpečený priamy prístup a
môžu sa kedykoľvek upravovať nezávisle od hlavného programu. K dispozícii sú
dva základné druhy M-súborov, tzv. skripty (z angl. script) a funkcie. Skripty slúžia na editovanie
postupnosti príkazov a pracujú v spoločnom prostredí programu s globálnymi
premennými. Na ich vykonanie stačí napísať do príkazového okna MATLABu názov
skriptu bez koncovky a odoslať na spracovanie. Hodnoty priradené premenným zostávajú v pamäti aj po vykonaní
skriptu. Naproti tomu funkcie majú svoje vlastné pracovné prostredie
s vlastnými lokálnymi premennými, ktoré pracuje oddelene od spoločného
pracovného prostredia. Všetky lokálne
premenné a ich hodnoty, použité v priebehu vykonávania príkazov
funkcie, po jej ukončení zaniknú. Funkcie spravidla na spustenie vyžadujú názov
a jednu alebo viacero vstupných premenných. Výsledkom je výstup, ktorý môžeme
priradiť globálnej premennej spoločnej časti programu. MATLAB ponúka veľa
zabudovaných funkcií, od najjednoduchších, ako napríklad elementárne funkcie 'sin' a 'exp' až po značné množstvo špeciálnych funkcií. Ako fungujú
funkcie, ukážeme na jednoduchom príklade exp(x)=ex. Do príkazového okna
zapíšeme
y=exp(1)
a dostaneme výsledok
y=2.7183
Ak zadáme
y=exp(0)
výstupom je
y=1
2. Ako vytvoriť M-súbor
2.1. Vytvorenie osobného priečinku
Najskôr vytvoríme priečinok, v ktorom si budeme
odkladať nami vytvorné M-súbory. Po spustení MATLABu sa na pracovnej ploche
objaví niekoľko okien. V ľavom hornom rohu sa nachádza okno "Current Directory" . Ak sme ho pri
predchádzajúcej práci zatvorili, otvoríme ho pomocou záložky View na hlavnej nástrojovej lište. V
okne "Current Directory" klikneme
na "New Folder" (objaví sa
žiariaca žltá ikona priečinku). Novému priečinku dáme vhodné meno, napríklad
"Moje Msubory".
2.2. Vytvorenie M-súboru
M-súbor najrýchlejšie vytvoríme
kliknutím na tlačidlo nového súboru - "New M-File" situovaného v
ľavom hornom rohu pod záložkou "File". Ten istý výsledok dosiahneme tiež
prístupom z hlavnej nástrojovej lišty pomocou "File - New - M-File". Na obrazovke
sa objaví nové okno M-súboru:
|
Novovytvorený M-súbor uložíme pod vhodným názvom, napríklad "MAT1.m". Aby sme sa vyhli duplicite, predtým overíme,
či s daným názvom už nejaký M-súbor neexistuje. Do príkazového okna
"Command Window" napíšeme
help MAT1 .
Ak M-súbor daného názvu neexistuje, vráti sa odpoveď
MAT1.m not found.
V prípade, že použijeme už existujúci názov, napríklad
help sin
MATLAB zobrazí informáciu o danom súbore:
SIN Sine.
SIN(X) is the sine of the elements of X.
Overloaded methods
help sym/sin.m
Meno súboru musí spĺňať rovnaké pravidlá ako aj názov
premennej, t.j. môže obsahovať iba písmená anglickej abecedy, podčiarkovník a
čísla (nie však na začiatku).
2.3. Vytvorenie M-súboru typu skript
Ako príklad vytvoríme veľmi jednoduchý skript, ktorý
bude sčitovať dve konkrétne čísla 3 a 2. Do prvého riadku práve vytvoreného
súboru napíšeme
y=3+2
(všimnite si, že za príkazom
nenasleduje ";" - inak by sa výstup nezobrazoval) . Súbor uložte do
vášho priečinka pomocou "File - Save As" ako MAT1. Stlačte tlačidlo "Debug - Run" a uvidíte:
|
Potvrdením "OK" vložíte skript do aktuálneho
adresára MATLABu. Od tohto okamihu MATLAB bude náš skript poznať . Ak teraz do príkazového okna napíšeme príkaz
MAT1
MATLAB vypíše
y=5 .
V prípade, že sa objaví správa
??? Undefined function or variable 'MAT1'. ,
zabudli ste stlačiť "OK" v okne "MATLAB
Editor".
Súbor zostáva editovateľný a môžeme ho kedykoľvek
otvoriť a zmeniť. Napríklad, ak potrebujeme, aby skript MAT1 sčitoval 3+3, jeho obsah zmeníme na
y=3+3 .
Po každej zmene musíme súbor opäť uložiť. Keď teraz do
príkazového okna napíšeme MAT1, dostaneme odpoveď
y=6
Je dobré zvyknúť si do každého M-súboru vložiť zopár
vysvetľujúcich viet. Komentáre sa v skriptoch uvádzajú hneď na začiatku.
Jednoducho kliknite na začiatok prvého riadku a stlačte Enter. Text sa odsunie
do ďalšieho riadka a vy môžete v prvom riadku editovať komentár. Vložte znak "%"
a zaň napíšte sprievodný text. Každý riadok, ktorý začína znakom "%" je výpočtovou časťou MATLABu
ignorovaný.
%MAT1 – počíta súčet dvoch čísel 3+3
Keď editujete priamo v prostredí MATLABu, farba textu
sa automaticky zmení a text komentára (so znakom "%") sa napíše v zelenej farbe.
Automatická zmena farby významne uľahčuje orientáciu v programe a vizuálnu
kontrolu. V príkazovej časti skriptu sa
nič nemení, príkaz nám dá ten istý výsledok ako predtým. V prípade, že zabudnete pred komentár vložiť
znak "%", dostaneme odpoveď
??? Error: File: add.m Line: 2 Column: 18
Unexpected MATLAB expression.
a príkazová časť sa nevykoná.
2.4 Vytvorenie M-súboru typu funkcia
Aby sme postrehli rozdiel, vytvoríme funkciu s
podobným obsahom ako predchádzajúci skript, funkciu sčitujúcu dve čísla. Vytvoríme
ďalší M-súbor a uložíme ho pod názvom add do pracovného priečinka (Pozor, pod názvom add nesmie existovať žiadny iný
M-súbor!). Potom doň zapíšeme:
function [out] = add(x,y)
%ADD – sčituje dve čísla
out=x+y;
a uložíme. Všimnite si, že v prvom riadku sa nachádza
označenie funkcie, v našom prípade "function [out] = add(x,y)" a komentár nasleduje až potom, v druhom riadku.
Keď do príkazového okna napíšeme
add(2,3)
dostaneme výpis
ans=5 .
Výsledok môžeme priradiť premennej, napríklad
y=add(2,3)
čo dá odpoveď
y=5 .