Cvičení v matlabu

Týden 3

Režimy práce v MATLABu

Dialogový režim

  • je přístupný v okně Command Window (viz výše)
  • v tomto režimu je možno Matlab používat jako více méně inteligentní kalkulačku s funkcemi
  • napsané výrazy/příkazy se po odeslání (stiskem klávesy ENTER) ihned vyhodnocují/vykonávají
  • umožňuje práci s proměnnými pracovního prostředí (Workspace)

Programový režim

  • slouží pro editaci M-souborů (skriptů nebo uživatelských funkcí, viz lekce 3)
  • je spjat se samostatným oknem Meditoru (= editor M-souborů, kde je barevně zvýrazňována syntaxe příkazů)
  • obsahuje debugger, který umožňuje hledat chyby ve funkcích/skriptech

Grafický režim

  • slouží pro vizualizaci výsledků
  • otevírá samostatná okna s názvem Figure

Proměnná je objekt, který má svůj název, typ a obsah (hodnotu).

Název proměnné

Název proměnné může obsahovat až 31 znaků. Jsou povoleny POUZE tyto znaky: písmena anglické abecedy (a-z, A-Z), číslice (0-9) a podtržítko (_). Číslicí název začínat nesmí.

V názvech jsou rozlišována velká a malá písmena (tzv. vlastnost case-sensitive), tedy proměnná pokus může existovat současně s proměnnou Pokus i třeba poKuS - a každá z nich má svou vlastní hodnotu.

Příklady správných názvů proměnných: aAb89xu1pom4pokus_5matice_Afx.

Příklady chybných názvů proměnných (chyba bývá v tom, že se v názvu použije nepovolený znak - v MATLABu mají znaky jako mezera, čárka, tečka, pomlčka, hvězdička atd. speciální význam!):

1pom ... název nesmí začínat číslicí,
matice A ... název nesmí obsahovat mezeru (toto je velmi častá chyba!!!),
lin.rovnice ... název nesmí obsahovat tečku (toto je také častá chyba!!!),
pokus-5 ... název nesmí obsahovat pomlčku,
f(x) ... název nesmí obsahovat závorky.

Typ a hodnota proměnné

Základní pravidlo zní: KAŽDÁ PROMĚNNÁ JE MATICE. MATLAB tedy nerozlišuje různé typy proměnných. Každá matice může obsahovat jakákoli komplexní čísla. Občas se setkáme s maticemi složenými ze znaků (= texty, chybová hlášení).

Z hlediska rozměrů matic rozlišujeme proměnné na

  • matice (mxn, kde m>1, n>1)
  • vektory (mx1 nebo 1xn)
  • skaláry (1x1, tedy jen jedno číslo)

Vytvoření proměnné

Pro vytvoření proměnné se používá přiřazovací příkaz:
>> název_proměnné = výraz.

Výrazy jsou popsány níže. Ukážeme si jednoduché příklady vytvoření proměnných, kdy je použit nejjednodušší výraz - konstanta.

Příklad: vytvoření skaláru:
>> a=8
>> pom=-2.145
>> skalar8=15e-2

  • Desetinná čísla zadáváme s desetinnou tečkou (ne čárkou!) nebo pomocí zlomku: 8.14   -0.0002   13/100. Pokud je před desetinnou tečkou jenom nula, lze ji vynechat: .52
  • Čísla lze zadávat také ve vědeckém formátu (s použitím písmena e pro označení exponentu 10e): 1.6e11   6.122e-8
  • Imaginární čísla zadáváme s použitím i anebo j (viz předdefinované proměnné): 12i   -6.11j
    Např. komplexní číslo 8+0.00032i zadáme jako 8+3.2e-4i

Vytvoření vektoru nebo matice: matice mxn vytváříme pomocí hranatých závorek, v nichž uvedeme jednotlivé řádky oddělené středníkem, přičemž prvky každého řádku (tj. sloupce) oddělujeme mezerou nebo čárkou (lze použít i obě najednou).
!!! Počty prvků v každém řádku se musejí shodovat, tj. nesmí se stát, že např. některý řádek má méně prvků než ostatní !!!
!!! Čárka neslouží jako desetinná čárka (na to je tečka), ale jako oddělovač prvků !!!

Příklad: vytvoření řádkového vektoru:
>> v1=[2 0.1 -3.7 4/5 0.14]   nebo
>> u1=[2,0.1, -3.7, 4/5,0.14]

Příklad: vytvoření sloupcového vektoru:
>> v2=[2; 0.1; -3.7; 4/5; 0.14]

Příklad: vytvoření matice 3x2:
>> maticeA=[1 2; 0.1 -3; .7 1/4]

Poznámky: přiřazovací příkaz také slouží ke změně hodnoty již existující proměnné, např. >> u1=[1 -3 2].

Zobrazení hodnoty proměnné

Chceme-li zjistit obsah proměnné (= její hodnotu), můžeme použít buď okno Workspace (dvojklik), anebo v dialogovém režimu napíšeme název proměnné:
>> název_proměnné
Příklad:
>> maticeA
>> a

Smazání proměnné

Co s proměnnými, které už nechceme používat? Lze je smazat s použitím okna Workspace, resp. pomocí příkazu clear.
>> clear název_proměnné   - smaže vybranou proměnnou
>> clear název_proměnné1 název_proměnné2 název_proměnnéN   - smaže vybrané proměnné (jejich názvy od sebe oddělujeme mezerou)
>> clear   - smaže všechny proměnné z Workspace.

Příklad:
>> clear b a   (smaže proměnnou b a proměnnou a)
>> clear   (smaže všechny proměnné)

!!! Neuvedeme-li seznam proměnných, smažou se všechny! Smazané proměnné nelze obnovit (pokud nebyly uloženy na disk - viz níže) !!!

Předdefinované proměnné

Některé proměnné jsou již definované - patří mezi ně eps (malé reálné číslo, 10-16ij (komplexní jednotka) a pi (Ludolfovo číslo). Tyto proměnné lze samozřejmě použít i pro uchování jiných hodnot (tím se předdefinovaná hodnota zničí), ale po použití příkazu >>clear i (resp. >>clear) jsou vráceny do původního stavu.
Příklad:
>> i
>> i=7
>> clear i
>> i

Proměnná ans

Proměnná ans je vytvářena automaticky, pokud některý z příkazů potřebuje vypsat hodnotu, kterou jsme nepřiřadili do žádné proměnné. Proměnná ans tedy obsahuje poslední zobrazenou nepojmenovanou hodnotu.
Příklad: pokud proměnná ans neexistovala, vytvoří se po vyhodnocení příkazu >> 2*3-5. Pokud proměnná ans již existovala, tak se změní její hodnota.

Uložení proměnných (na disk)

Někdy se stane, že potřebujeme uchovat nějakou důležitou proměnnou pro použití při příštím spuštění MATLABu (např. musíme přerušit práci). Potřebujeme tedy proměnnou dostat z paměti na disk počítače. K tomu slouží příkaz save:
>> save jméno_souboru název_proměnné   - do zadaného souboru se uloží vybraná proměnná,
>> save jméno_souboru název_proměnné1 název_proměnné2 název_proměnnéN   - do zadaného souboru se uloží N vybraných proměnných (jejich názvy od sebe oddělujeme mezerou),
>> save jméno_souboru   - do zadaného souboru se uloží všechny proměnné z Workspace.

Ve všech případech je vytvořen soubor s příponou MAT (ta je přidána automaticky), který obsahuje názvy a hodnoty vybraných proměnných.

Příklad: uložení dvou proměnných a a maticeA do souboru 'pokus.mat':
>> save pokus a maticeA   (soubor 'pokus.mat' vznikne v pracovním adresáři)

Poznámka: příkaz save má širší možnosti - viz >> help save.

Nahrání proměnné (z MAT-souboru)

Je-li na disku nějaký soubor s uloženou jednou nebo více proměnnými (vznikl pomocí save), lze tyto proměnné dostat do pracovního prostředí MATLABu pomocí příkazu
>> load název_souboru
(u názvu souboru můžeme vynechat jeho příponu MAT).

Příklad:
>> clear
>> load pokus
.

Poznámka: i příkaz load má širší možnosti - viz >> help load.