MATLAB® je integrované prostredie pre vedeckotechnické výpočty, modelovanie, návrhy algoritmov, simulácie, analýzu a prezentáciu údajov, meranie a spracovanie signálov, návrhy riadiacich a komunikačných systémov. MATLAB je nástroj tak pre pohodlnú interaktívnu prácu, ako aj pre vývoj širokého spektra aplikácií.
MATLAB bol pôvodne vyvinutý pre prístup k matematickým knižniciam (EISPACK, LINPACK). Názov vznikol z anglických slov matrix laboratory. Najskôr existovali verzie iba pre operačné systémy typu UNIX, prvá verzia pre Windows bola uvedená na trh až v roku 1994.
Prvá verzia (pre PC XT) vznikla okolo roku 1985. Ako väčšina programov tej doby mala problémy s nedostatkom pamäti, čo obmedzovalo hlavne veľkosť matíc, s ktorými bolo možné vykonávať výpočty. Ďalšia verzia bola určená špeciálne pre počítač PC AT, kde bola veľkosť matíc obmedzená na 16 MB.
Virtuálnu pamäť začal MATLAB používať s nástupom počítačov s procesorom 80386, výpočty ale boli stále veľmi pomalé. Pre ilustráciu: výpočet inverzie matice 1000x1000 trval niekoľko minút.
V roku 1994 bola na trh uvedená verzia pre Windows, čo zo sebou prinieslo veľkú výhodu v podobe väčších možností grafiky, na druhej strane boli výpočty pomalšie.
Posledná verzia je Release 14 / verzia 7.0 (rok 2005).
Program MATLAB používa programovací jazyk MATLAB. V postate sa jedná o prácu veľmi podobnú práci v unixové konzole. Užívateľ zadáva príkazy, ktoré sú potom na jeho pokyn vykonané. Dnes je však už možné veľkú časť príkazov zadávať v grafickom rozhraní. Odpadá tak namáhavé zadávanie údajov do príkazového riadku.
Najdôležitejšou časťou programu MATLAB je jeho výpočtové jadro. Medzi jeho základné operácie patria operácie s maticami (determinant, inverzia, atď.), vrátane rozsiahlych tzv. riedkych matíc a operácie s vektormi. Tie môžu byť reprezentované aj ako polynóm.
Základným dátovým typom v MATLABe sú matice, ďalším sú napríklad viacrozmerné pole reálnych alebo komplexných čísiel a tzv. pole buniek, v ktorých každá časť môže mať iný dátový typ. Ďalšie dátové typy si užívateľ môže nadefinovať sám a vytvárať tak v podstate neobmedzene zložité dátové štruktúry.
Verzia MATLABu (6.5) sa môže pochváliť veľmi prepracovanou grafikou, ide o systém nazvaný Handle Graphics. Vie kresliť grafy, rôzne ich upravovať, atď.
Výhodou je tiež prepojenie s jazykom Java. Je tak umožnené využívať knižnice vytvorené pre Javu. Do MATLABu potom možno vkladať aj časti vytvorené v jazyku C a naopak do jazyka C exportovať.
Toolboxy (knižnice) sú špecializované knižnice obsahujúce preddefinované funkcie napísané v jazyku MATLAB určené k riešeniu problémov v danej oblasti. Spravidla boli vyvinuté (alebo aspoň ich jadro) na univerzite tímom okolo významného odborníka. Ku každému toolboxu existuje pomerne rozsiahla dokumentácia.
MATLAB pozostáva z piatich hlavných častí:
| Knižnica | Opis |
|---|---|
| ops | operátory s špeciálne znaky |
| lang | konštrukcia programovacieho jazyka |
| strfun | charakter reťazcov |
| iofun | vstup-výstup súboru |
| timefun | dátum a čas |
| datatypes | dátové typy a štruktúry |
| Knižnica | Opis |
|---|---|
| general | operátory a špeciálne znaky |
| Knižnica | Opis |
|---|---|
| graph2d | dvojrozmerné grafy |
| graph3d | trojrozmerné grafy |
| specgraph | špeciálne grafy |
| graphics | manipulácia s grafmi |
| uitools | grafické užívateľské prostriedky |
| Knižnica | Opis |
|---|---|
| elmat | elementárne matice a manipulácia s maticami |
| elfun | základné matematické funkcie |
| specfun | špeciálne matematické funkcie |
| matfun | maticové funkcie - numerická lineárna algebra |
| datafun | analýza dát a Fourierová transformácia |
| polyfun | interpolácia a polynómy |
| funfun | práca s funkciami a riešenie dif. rovníc cez ODE |
| sparfun | riedke (Sparse) matice |
Simulink je program, ktorý využíva MATLAB a jeho funkcie na simuláciu dynamických systémov. Je mladší než MATLAB, jeho prvá verzia bola k dispozícii s MATLABom 4. Simulink má trochu iné užívateľské rozhranie než MATLAB. Zatiaľ čo v MATLABe je stále najdôležitejší príkazový riadok, ovládanie Simulinku je jednoduchšie a intuitívnejšie, ale pokročilejšie funkcie nie je možné vykonávať bez znalosti jazyka MATLAB. Do Simulinku možno vkladať, rovnako ako v MATLABe, časti napísané v jazyku C.
Zoznam všetkých nainštalovaných toolboxov si môžete vypísať príkazom help.>> help HELP topics: matlab\general - General purpose commands. matlab\ops - Operators and special characters. matlab\lang - Programming language constructs. matlab\elmat - Elementary matrices and matrix manipulation. matlab\elfun - Elementary math functions. matlab\specfun - Specialized math functions. matlab\matfun - Matrix functions - numerical linear algebra. matlab\datafun - Data analysis and Fourier transforms. matlab\audio - Audio support. matlab\polyfun - Interpolation and polynomials. matlab\funfun - Function functions and ODE solvers. matlab\sparfun - Sparse matrices. matlab\graph2d - Two dimensional graphs. matlab\graph3d - Three dimensional graphs. matlab\specgraph - Specialized graphs. matlab\graphics - Handle Graphics. matlab\uitools - Graphical user interface tools. matlab\strfun - Character strings. matlab\iofun - File input/output. matlab\timefun - Time and dates. matlab\datatypes - Data types and structures. matlab\verctrl - Version control. matlab\winfun - Windows Operating System Interface Files (DDE/COM) winfun\comcli - (No table of contents file) matlab\demos - Examples and demonstrations. toolbox\local - Preferences. simulink\simulink - Simulink simulink\blocks - Simulink block library. simulink\components - Simulink components. ....
>> help ops
Operators and special characters.
Arithmetic operators.
plus - Plus +
uplus - Unary plus +
minus - Minus -
uminus - Unary minus -
mtimes - Matrix multiply *
times - Array multiply .*
mpower - Matrix power ^
power - Array power .^
mldivide - Backslash or left matrix divide \
mrdivide - Slash or right matrix divide /
ldivide - Left array divide .\
rdivide - Right array divide ./
kron - Kronecker tensor product kron
Relational operators.
eq - Equal ==
ne - Not equal ~=
lt - Less than <
gt - Greater than >
le - Less than or equal <=
ge - Greater than or equal >=
Logical operators.
Short-circuit logical AND &&
Short-circuit logical OR ||
and - Element-wise logical AND &
or - Element-wise logical OR |
not - Logical NOT ~
xor - Logical EXCLUSIVE OR
any - True if any element of vector is nonzero
all - True if all elements of vector are nonzero
Special characters.
colon - Colon :
paren - Parentheses and subscripting ( )
paren - Brackets [ ]
paren - Braces and subscripting { }
punct - Function handle creation @
punct - Decimal point .
punct - Structure field access .
punct - Parent directory ..
punct - Continuation ...
punct - Separator ,
punct - Semicolon ;
punct - Comment %
punct - Invoke operating system command !
punct - Assignment =
punct - Quote '
transpose - Transpose .'
ctranspose - Complex conjugate transpose '
horzcat - Horizontal concatenation [,]
vertcat - Vertical concatenation [;]
subsasgn - Subscripted assignment ( ),{ },.
subsref - Subscripted reference ( ),{ },.
subsindex - Subscript index
Bitwise operators.
bitand - Bit-wise AND.
bitcmp - Complement bits.
bitor - Bit-wise OR.
bitmax - Maximum floating point integer.
bitxor - Bit-wise XOR.
bitset - Set bit.
bitget - Get bit.
bitshift - Bit-wise shift.
Set operators.
union - Set union.
unique - Set unique.
intersect - Set intersection.
setdiff - Set difference.
setxor - Set exclusive-or.
ismember - True for set member.
See also ARITH, RELOP, SLASH, FUNCTION_HANDLE.
>> help plus
+ Plus.
X + Y adds matrices X and Y. X and Y must have the same
dimensions unless one is a scalar (a 1-by-1 matrix).
A scalar can be added to anything.
C = PLUS(A,B) is called for the syntax 'A + B' when A or B is an
object.
Overloaded methods
help zpk/plus.m
help tf/plus.m
help ss/plus.m
help frd/plus.m