Protože jsme se v předchozích lekcích setkali s různým významem některých nealfanumerických znaků, můžeme si nyní udělat jejich přehled. V tabulce nejsou zahrnuty ty znaky, které jsou jen a pouze součástí operátorů nebo názvů proměnných. V příkladech jsou použity některé knihovní funkce.
[ ] (hranaté závorky)
|
( ) (kulaté závorky)
|
{ } (složené závorky)
|
Poznámka: < > neslouží jako lomené závorky, ale jen a pouze jako relační operátory |
(mezera)
|
, (čárka)
|
; (středník)
|
. (tečka)
|
= (rovnítko)
|
' (apostrof)
|
% (procento)
|
: (dvojtečka)
|
V lekci 3 jsme se seznámili s vytvářením uživatelských funkcí, pomocí nichž můžeme zefektivnit svou práci. Systém MATLAB je rozsáhlý a obsahuje mnoho již hotových funkcí, takže je nemusíme vytvářet sami (pokud známe jejich jméno). Hotové funkce jsou sdruženy do tzv. knihoven nebo toolboxů (knihovnu si lze představit jako adresář plný M-souborů, obsahujících funkce s podobnou činností).
Všechny knihovní funkce mají nápovědu (v angličtině). Pokud tedy potřebujeme zjistit, zda pro nějakou činnost existuje v MATLABu již hotová funkce, můžeme hledat pomocí Help Browseru (záložka Search) nebo použít příkaz >> lookfor hledane_slovo, který hledá v popisech funkcí a vypisuje H1 line (první řádek nápovědy) všech nalezených funkcí. Hledání pomocí lookfor může trvat delší dobu (nechcete-li čekat, stiskněte CTRL+C).
Známe-li název funkce, kterou potřebujeme použít, dozvíme se o jejích možnostech a o tom, jak ji spustit, z její nápovědy. Nápovědu k vybrané funkci zobrazí příkaz >> help nazevfce nebo přímo Help Browser, pokud klikneme pravým tlačítkem myši na název funkce a vybereme "Help on selection".
Pokud je knihovní funkce uložená v M-souboru, lze si prohlédnout její kód stejným způsobem, jako kdyby byla vytvořená uživatelem (tedy např. >> type jmenofce). Některé knihovní funkce jsou tzv. built-in (vestavěné, optimalizované), takže jejich kód není přístupný (např. sin).
V následujícím textu jsou uvedeny názvy některých základních knihovních funkcí.
Jak již bylo řečeno v lekci 1, každá proměnná v MATLABu je matice typu mxn, přičemž m,n>0. Některé funkce vyžadují vstupní argumenty pouze určitého typu (např. jen skaláry), jiným na typu vstupních parametrů "nezáleží" a ke svým vstupním proměnným typu mxn se chovají třemi základními způsoby: skalárně (tj. po prvcích), vektorově (tj. po sloupcích) nebo maticově (podle pravidel lineární algebry). Lze je tedy rozdělit na:
>> help elfun| význam funkce | název v MATLABu | příklady |
|---|---|---|
| goniometrické funkce | sin, cos, tan... |
>> y1=cos(pi/2) |
| exponenciální funkce ex | exp | |
| přirozený logaritmus ln(x) | log | |
| dekadický logaritmus log(x) | log10 | |
| odmocnina | sqrt | |
| absolutní hodnota | abs |
>> help datafun| význam funkce | název v MATLABu | příklady |
|---|---|---|
| suma (součet prvků vektoru) | sum |
>> u=1:0.5:3; |
| minimum | min | |
| maximum | max | |
| průměr | mean | |
| medián | median |
>> help matfun| význam funkce | název v MATLABu | příklady |
|---|---|---|
| determinant | det |
>> M=[1,2,3;-3,4,1;0,8,4] |
| inverzní matice | inv | |
| pseudoinverze | pinv | |
| hodnost matice | rank | |
| skalární součin vektorů | dot |
Poznámka: k řešení soustavy lineárních rovnic, která je převedena do maticového tvaru, lze použít inverzní matici nebo operátor \.
Mezi užitečné funkce patří také ty, které vytvářejí matice/vektory. Mohou nám tak usnadnit práci se zadáváním matic/vektorů. Tyto funkce mají většinou dva vstupní parametry: [matice] = nazevfce(m,n), ale pokud chceme získat čtvercovou matici (typu mxm), stačí zadat jen jeden vstup. Přehled těchto funkcí zobrazí příkaz >> help elmat.
| význam funkce | název v MATLABu | příklady |
|---|---|---|
| matice obsahující nuly | zeros |
>> N=zeros(5,2) |
| matice obsahující jedničky | ones | |
| jednotková matice | eye | |
| matice náhodných čísel od 0 do 1 | rand | |
| magický čtverec (má shodné součty řádků, sloupců a diagonál) | magic |
| význam funkce | název v MATLABu | příklady |
|---|---|---|
| počet řádků a sloupců (funkci lze volat s jedním vstupem a dvěma výstupy nebo dvěma vstupy (druhý vstup je skalár) a jedním výstupem) | size | >> [radky,sloupce]=size(N) |
| délka vektoru | length | >> l=length(u) |
| význam funkce | název v MATLABu | příklady |
|---|---|---|
| výpis textu do Command Window | disp |
>> disp('ahoj') |
| výpis chybového hlášení do Command Window (je-li použita uvnitř funkce, tak ji navíc ukončí) | error |
Poznámka: přehled názvů funkcí pro práci s řetězci vypíše příkaz >> help strfun
Budou předmětem další lekce.
... hledejte v nápovědě podle potřeby.
Soustavu rovnic
Ax=b
řešíme pomocí operátoru \ nebo pomocí inverzní matice (funkce inv). V každém případě je potřeba nejprve ověřit řešitelnost soustavy, například pomocí výpočtu determinantu (funkce det):
| soustava.m |
function x=soustava(A,b)
% SOUSTAVA - reseni soustavy linearnich rovnic
% A ... matice soustavy
% b ... vektor pravych stran
% x ... reseni soustavy
if det(A)==0
error('Soustava nema reseni!')
end
x = A\b; % vypocet reseni; DRUHA MOZNOST: x=inv(A)*b;
|
Spuštění funkce a ověření výsledků:
>> M=[3 2 -1; 1 0 1; 2 1 -1]; v=[5;4;2]; % zadani soustavy v maticovem tvaru
>> reseni=soustava(M,v) % spusteni funkce
reseni =
1.5000
1.5000
2.5000
>> M*reseni % overeni spravnosti reseni
ans =
5
4
2