
Lokální a globální proměnné
Všechny proměnné definované v MATLABu jsou implicitně považovány za lokální, tj. nejsou známy mimo aktivní prostředí, kterým může být volaná funkce nebo pracovní okno s příkazovým řádkem. Tedy pokud jsme v pracovním okně definovali na příkazovém řádku proměnnou x, pak ve volané funkci bude tato proměnná neznámá. Pokud si uvnitř funkce definujeme také proměnnou x nebo tak bude označen vstupní, případně výstupní parametr, nebude to mít žádný vliv na proměnnou x definovanou v příkazovém řádku. Naopak jakékoliv proměnné definované během práce nějaké funkce nejsou známy mimo tuto funkci.
Výjimku tvoří dávkové soubory, ve kterých jsou známé proměnné definované v prostředí, odkud byly zavolány. Naopak pokud v dávce nějaké proměnné definujeme, jsou pak známé i po jejím ukončení.
Mějme soubor davka1.m obsahující příkazy
[P1, o1] = trojuh(3, 4, 5); [P2, o2] = trojuh(7, 8, 9); |
Po zadání příkazu davka1 z příkazové řádky jsou definovány proměnné P1, o1, P2, o2 obsahující spočtené hodnoty. Podobně bychom mohli tyto hodnoty použít v nějaké funkci, která by obsahovala příkaz davka1.
V případě, že potřebujeme použít nějakou proměnnou definovanou v příkazové řádce i v nějaké funkci, musíme ji deklarovat jak globální pomocí příkazu global, a to jak v příkazové řádce tak v těle funkce. Tato deklarace by se měla použít před přiřazením hodnoty této proměnné.