Slovník | Vyhledávání | Mapa webu
 
Základy informatiky pro biologyVýpočetní matematické systémy Jak pracovat s MATLABem Programování v MATLABu Dávkové soubory (skripty) a funkce

Logo Matematická biologie

Dávkové soubory (skripty) a funkce

Programy v MATLABu, které si může uživatel běžně vytvořit, lze rozdělit do dvou skupin: dávkové soubory neboli skripty a funkce. Hlavní rozdíl mezi nimi je v tom, že funkce může pracovat se vstupními a výstupními proměnnými, dávkový soubor nikoliv. Další rozdíl je v lokálních a globálních proměnných, ten bude popsán dále. Obě skupiny programů řadíme mezi tzv. M-fajly, neboť jsou uloženy v souborech s příponou .m - např. dávka1.m, funkce2.m apod.

Dávkový soubor obsahuje příkazy MATLABu, které bychom mohli zadávat přímo z klávesnice. Důvodem jejich uložení do souboru může být třeba to, že stejnou sekvenci příkazů budeme potřebovat vícekrát. Důležitou roli zde má soubor s názvem "startup.m", který se vykoná při každém spuštění programu MATLAB, pokud existuje v adresáři, v němž MATLAB pouštíme. V souboru "startup.m" může být např. úvodní nastavení formátu, otevření záznamu práce příkazem diary, atd.

Příklad obsahu souboru startup.m:

format compact
diary on
disp('Program MATLAB Vás vítá!')
disp(' ')
disp('Vás pracovní adresář je:')
disp(pwd)

Funkce musí začínat hlavičkou, která má tvar:

function [vystupni_parametry] = nazev_funkce(vstupni_parametry)

a měla by končit příkazem end.

Vytvořená funkce musí být uložena v souboru s příponou .m. Je doporučováno volit shodný název pro funkci i soubor, v opačném případě je při volání funkce rozhodující název souboru.

Seznamy vstupních a výstupních parametrů jsou seznamy proměnných oddělených čárkami. Tyto proměnné je možné libovolně používat v příkazech uvnitř funkce, přičemž všechny výstupní proměnné by měly mít přiřazenou hodnotu před ukončením běhu funkce. Pokud je výstupní proměnná jen jedna, nemusí být uzavřena v hranatých závorkách. Vstupní ani výstupní proměnné nejsou povinné, hlavička funkce může v tomto případě vypadat následovně:

function funkce1

Na řádcích pod hlavičkou může být umístěna nápověda k funkci. Jedná se o řádky začínající znakem % (komentáře) obsahující popis chování funkce. Nápověda se zobrazí pomocí funkce help nazev_funkce nebo doc nazev_funkce.

Příklad jednoduché funkce:

function [P,o] = trojuh(a, b, c)
% [P,o] = trojuh(a, b, c)
% Funkce pro výpočet obvodu a obsahu trojúhelníka
% a, b, c - délky stran
% P - obsah, o - obvod

o = a+b+c;
s = o/2;
P = sqrt(s*(s-a)*(s-b)*(s-c));
end  

Uvedené příkazy uložíme do souboru s názvem trojuh.m v pracovním adresáři nebo v adresáři, do kterého je nastavena cesta.

Názvy skutečných proměnných, které předáváme funkci jako parametry, se samozřejmě nemusí shodovat se jmény proměnných ve funkci samotné, vstupní parametry je možné zadávat i přímo pouze hodnotami.

[x,y] = trojuh(3, 4, 5)
x = 
    6
y =
    12

V případě, že při volání použijeme méně výstupních parametrů, než je v definici funkce, jsou funkcí přiřazeny příslušné hodnoty
zleva, pokud tuto situaci neřeší funkce samotná.

 trojuh(3, 4, 5)    získáme pouze obsah trojúhelníka, jehož hodnota bude je přiřazena v proměnné ans    

Funkce je ukončena po vykonání všech příkazů, které obsahuje. Je také možné funkci ukončit dříve pomocí příkazu return.
Předčasné ukončení činnosti funkce dosáhneme též funkcí error('chyba'), která navíc vyvolá zvukový signál a vypíše textový řetězec chyba.

 A = [];
 [m, n] = size(A);
 if m*n == 0     % matice a je prazdna
error('Prazdna matice!');    % vypis chyboveho hlaseni (cervene) v pripade, ze je podminka splnena
end
Prazdna matice!

 

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