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