Procvičení základních příkazů Matlabu

Tento soubor slouží k procvičení těch zcela nejzákladnějších příkazů Matlabu. Příkazy nekopírujte myší, ale každý příklad si napište sami na příkazový řádek a pochopte ho.

1. Vytvoření matic

1.1 Vyrobíme matici 'a' o velikosti 1x1 (tedy skalár) a hodnotě 1.

>> a = 1
Všimněte si, došlo také k výpisu výsledku. Tento výpis se dá potlačit pomocí středníku na konci:
>> a = 1;
Můžeme vypsat proměnnou i bez přiřazení:
>> a
Na výpis proměnné v programu máme i jiné příkazy, např.
>> disp(a)

1.2 Vyrobíme matici o velikosti 1x3 (tedy řádkový vektor):
>> a = [1 3 5]

1.3 Řádkový vektor, který je sekvencí po sobě jdoucích čísel, jde vytvořit pomocí dvojtečky:
>> a = 1:5

1.4 Dvě dvojtečky dovolí určit velikost kroku:
>> a = 1:2:10

1.5 Krok může být i záporný:
>> a = 5:-1:1

1.6 Vyrobíme matici o velikosti 3x1 (tedy sloupcový vektor):
>> a = [1;3;5]

1.7 Vyrobíme matici o velikosti 3x4:
>> A = [1 2 3 4; 11 12 13 14; 101 102 103 104]
Mezera mezi prvky v hranaté závorce tedy prvky spojuje vodorovně, středník svisle.
1.8 Zcela stejně funguje mezera a středník pro spojení celých matic nebo vektorů vodorovně nebo svisle:
>> [A A]
>> [A;A]
>> [A; -1 -2 -3 -4]

1.9 Zjistíme velikost matice:
>> size(A)

2. Výběr prvků z matice

2.1 Vybereme z matice prvek (2,3):
>> A(2,3)

2.2 Vybereme podmatici:
>> A(1:2,[2 4])
Ujasněte si přesně, co jsme z matice 'A' vybrali. Vybrali jsme podmatici o velikosti 2x2 určenou řádky 1,2 a sloupečky 2,4.
2.3 Vybereme celý řádek:
>> A(2,:)

2.4 Roztáhneme matici do sloupcového vektoru:
>> A(:)

3. Přiřazení nových hodnot prvkům existující matice

3.1 Přirazení nové hodnoty jedinému prvku:
>> A(2,3) = -1

3.2 Přiřadíme podmatici novou hodnotu:
>> A(1:2,[2 4]) = [-2 -4; -12 -14]

3.3 Vymažeme třetí sloupec:
>> A(:,3) = [ ]

4. Speciální matice

4.1 Matice naplněná nulami nebo jedničkami:
>> zeros(3,4)
>> ones(3,4)

4.2 Jednotková matice:
>> eye(3)

4.3 Náhodná matice:
>> rand(3,4)

4.4 Prázdná matice:
>> a = [ ]

5. Operace s maticemi

5.1 Násobení skalárem a přičítání skaláru:
>> 2*A + 3

5.2 Transpozice matice:
>> A'

5.3 Součet matic po prvcích:
>> A = [1 2 3; 4 5 6; 7 8 9]; B = [11 12 13; 14 15 16; 17 18 19];
>> A+B

5.4 Maticový součin:
>> A*B
Vzpomeňte z lineární algebry, co je maticový součin!
5.5 Součin matic po prvcich (tj. odpovídající dvojice prvků se pronásobí zvlášť):
>> A.*B

5.6 Mocnina po prvcích:
>> A.^2

5.7 Součet složek vektoru:
>> sum([1 3 5])

6. Řešení soustavy lineárních rovnic

6.1 Definujme
>> A = [1 2 3; -1 0 2; 1 3 1]; b = [1;0;0];
a řešme soustavu lineárních rovnic 'A*x==b'. Je jasné na první pohled, že to lze udělat pomocí inverzní matice:
>> x = inv(A)*b
Lepší (protože přesnější) způsob je použít operátor '\', který soustavu řeší pomocí Gaussovy eliminace:
>> x = A\b
Zkontrolujeme, zda 'x' vyšlo správně:
>> A*x-b

7. Logické matice

7.1 Výsledkem relačního operátoru '>' je logický vektor 'b' (který má pouze jedničky a nuly):
>> a = 1:6;
>> b = (a>3)
Podobně fungují ostatní relační operátory: <, >=, <=, ==, ~=
7.2 Logická spojka '|' ('nebo'):
>> b = (a>3) | (a==1)
Logická spojka 'a' se píše jako '&'.
7.3 Indexy všech jedniček v logickém vektoru najdeme velmi důležitým příkazem 'find':
>> find(b)

8. Dvojrozměrná grafika

8.1 Dvojrozměrný graf kvadratické funkce:
>> x = -3:0.5:3;
>> plot(x, x.^2)

8.2 Totéž, ale červeně přerušovaně (nový graf překreslí ten starý):
>> plot(x, x.^2, 'r--')

8.3 Totéž žlutými křížky:
>> plot(x, x.^2, 'y+')

8.4 Přidáme zelenou sinusovku ('hold on' říká, že se bude přidávat a ne překreslovat):
>> hold on
>> plot(x, sin(x), 'g')
>> hold off

8.5 Otevřeme nový obrázek pro grafiku:
>> figure

8.6 Vykreslíme bitmapu, vytvořenou jako náhodná matice o velikosti 100x100:
>> imagesc(rand(100))
Bitmapa je v pseudobarvách. Pokud chceme stupnici šedi, napíšeme
>> colormap(gray)

8.7 Smažeme aktuální obrázek ('clf' = clear figure):
>> clf

8.8 Zavřeme všechna okna s obrázky:
>> close all

9. Různé

9.1 Podiváme se, jaké proměnné máme v pracovním prostoru a co jsou zač:
>> whos

9.2 Smažeme všechny proměnné z pracovního prostoru:
>> clear all

9.3 Nápověda k danému příkazu:
>> help plot

9.4 Každá funkce je buď součástí jádra ('built in') nebo je to program v matlabském jazyce. Jedné funkci odpovídá jeden soubor s programem a s příponou '.m'.

Můžeme se zeptat, kde je soubor s programem k dané funkci příp. je-li součást jádra:

>> which imagesc
>> which plot
Zdrojový soubor s funkcí můžeme nahrát do editoru:
>> edit imagesc

10. Co se nestihlo...

Jelikož bylo možné probrat v omezeném čase cvičení jen velmi málo, bude pro vás užitečné, když si někdy později vypíšete help a pochopíte následující příkazy. Jejich zvládnutí vám postačí pro používání Matlabu na poměrně slušné úrovni.
help, doc, demo, lookfor, edit, path, addpath, format,
end, reshape,
inf, nan, any, all, isempty, floor, round, ops,
length, linspace, max, min, sort, det, rank,
load, save, fprintf,
axis, title, contour, mesh, surf, colormap, print,
for, if, while, function