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