MATLAB je okruženje za numeričke proračune i programski jezik četvrte generacije koji je razvila firma -MathWorks. MATLAB omogućava lako manipulisanje matricama, prikazivanje funkcija i fitovanje, implementaciju algoritama, stvaranje grafičkog korisničkog interfejsa kao i povezivanje sa programima pisanim u drugim jezicima među kojima su CC++C#JavaFortran i Python.

MATLAB
Programer(i)MathWorks
Prva verzija1970ih
Najnovija
verzija
R2017a
9. mart 2017.
Pisano uC, C++, Java
OSVišeplatformski
TipTehničko računarstvo
LicencaVlasnička
Veb-sajtMATLAB

MATLAB je nastao kao skraćenica za „MATrix LABoratory“ („laboratorija za matrice“). Izumeo ga je kasnih 1970ih Kliv Moler (engl.- Cleve Moler), šef katedre za informatiku na Univerzitetu „Novi Meksiko“.

Iako je MATLAB namenjen za numeričke proračune ali opciona kutija za alat koristi MuPAD računarski algebarski sistem čime se dobija pristup simboličkom račumanju. MATLAB je moguće nabaviti zajedno sa Simulinkom kao i brojnim dodacima.

Dodaci su svrstani po sledećim kategorijama:

  • Matematika i optimizacija
  • Statistika i analiza podataka
  • Kontrola i analiza sistema
  • Procesiranje signala i komunikacija
  • Obrada slike
  • Test i mjerenja
  • Finansijsko modelovanje i analiza
  • Povezivanje sa drugim aplikacijama
  • Povezivanje baza podataka i izvještavanje
  • Distribuirano računanje

Procenjeno je 2004. godine da preko milion ljudi zapošljenih u industriji i na univerzitetima koristi MATLAB.[тражи се извор]

Istorija

uredi

MATLAB je izumeo kasnih 1970ih Kliv Moler (engl.- Cleve Moler), šef katedre za informatiku na Univerzitetu „Novi Meksiko“. On ga je dizajnirao da bi studenti dobili pristup LINPACK i ESPAC bibliotekama bez znanja Fortrana. Matlab se ubrzo proširio na druge univerzitete i dobio veliku podrsku od strane ljudi koji se bave primenjenom matematikom. Inženjer Džek Litl (engl. -Jack Little) je u Molnerovoj poseti Stendford Univerzitetu 1983. uvideo komercijalni potencijal MATLABa. On se udružio sa Molnerom i Stivom Bangertom (engl.- Steve Bangert) i preradio MATLAB u C programskom jeziku. Zajedno su 1984. osnovali kompaniju MathWorks. Matlab je ponovo prerađen 2000. godine za lakši rad sa matricama.

Sintaksa

uredi

MATLAB aplikacija je napravljena oko MATLAB skriptnog jezika. MATLAB aplikacija se najčešće koristi kao interfejs za izvršavanje fajlova u MATLAB programskom jeziku.

 Promenljive

uredi

Promenljive se definišu pomoću opratora, =. Promenljive mogu da se definišu bez deklaracije tipa, osim ukoliko su promenljive simbolički objekti, i njihov tip može da se promeni. Vrednosti promenljivih mogu da se dodeljuju konstantama, izrazimq u kojima figurisu druge promenljive i od funkcijama. Na primer:

>> x = 17
x =
 17

>> x = 'hat'
x =
hat

>> y = x + 0
y =
       104        97       116

>> x = [3*4, pi/2]
x =
   12.0000    1.5708

>> y = 3*sin(x)
y =
   -1.6097    3.0000

Vektori i matrice

uredi

Niz se definiše korišćenjem tri vrdnosti između kojih se nalazi dvotačka: init:increment:terminator. Na primer:

>> array = 1:2:9
array =
 1 3 5 7 9

definiše promenljivu array (ili dodeljuje novu vrednost promenljivoj array) koja je niz koji se sastoji od brojeva 1, 3, 5, 7 i 9. Odnosno, niz počinje od 1 (init vrednost), svaki put se vrednost povećava za 2(increment vrednost) , i prestaje kad dostigne 9(terminator vrednost).

>> array = 1:3:9
array =
 1 4 7

increment vrednost može da se izostavi i tada se korisi 1 kao podrazumevana vrednost.

>> ari = 1:5
ari =
 1 2 3 4 5

dodeljuje promenljivoj ari niz vrednosti 1, 2, 3, 4 i 5, pošto je podrazumevana vrednost za inkrement 1. Matrice mogu da se definišu odvajanjemelemenata jednog reda razmakom ili tačkom i korišćenjem tačka zareza da se prekine red. Na početku i na kraju treba da stoje uglaste zagrade: []. Zagrade: () se koriste za pristup elementima podniza (takođe se koriste za argumente funkcije).

>> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
A =
 16  3  2 13
  5 10 11  8
  9  6  7 12
  4 15 14  1

>> A(2,3)
ans =
 11

Jedinična matrica veličine n može da se generiš funkcijom eye, i matrice bilo koje veličine sa samo nulama i jedinicama mogu da se generišu funkcijama zeros i ones, redom.

>> eye(3,3)
ans =
 1 0 0
 0 1 0
 0 0 1

>> zeros(2,3)
ans =
 0 0 0
 0 0 0

>> ones(2,3)
ans =
 1 1 1
 1 1 1

Većina MATLAB funkcija prihvata matrice i izvršavaće se za svaki element. Na primer, mod(2*J,n) će pomnožiti svaki element u "J" sa 2, i onda reduce each element modulo "n". U MATLABU postoje standardne "for" i "while" petlje, ali(kao i u sličnim aplikacijama poput R), korišćenjem vektora se dobija kod koji se brže izvršava.

Strukture

uredi

MATLAB ima strukture kao tipove podataka. Pošto su sve promenljive u MATLABu nizovi, adekvatnije ime je "strukturni niz". Nažalost, MATLAB JIT ne podržava MATLAB strukture, zbog čeg korišćenje struktura košta.

Funkcije

uredi

Pri kreiranju MATLAB funkcije, ime fajla treba da bude isto kao ime prve funkcije u fajlu. Validna imena funkcija počinju slovom i mogu da sadrže brojeve i donje crte. Funkcije su često osetljive na mala i velika slova.

Klase i objektno-orijentisano programiranje

uredi

MATLAB podržava objektno orijentisano programiranje uključujući klase , nasleđivanje, pakete, senmatike prosleđivanja po vrednosti i senmatike prosleđivanja po referenci. Ipak sintaksa se znatno razlikuje od ostalih jezika. MATLAB ima vrednosne i referentne klase,

Ponašanje metoda je različito za vrednosne i referentne klase. Na primer, pozivanje

object.method();

može da promeni bilo koji član objekta samo ako je objekat referentne klase. Na primer:

classdef hello
    methods
        function greet(this)
            disp('Hello!')
        end
    end
end

Kada se stavi u fajl sa nazivom hello.m, ovo može da se izvršava uz pomoć sledećih komandi:

>> x = hello;
>> x.greet();
Hello!

Grafika i GUI(eng. graphical user interface)

uredi

MATLAB obuhvata razvoj aplikacija sa GUI.Sadrži funkcije za crtanje grafika.Npr. funkcija plot može biti iskorišćena za crtanje grafika od vektora x i y.Primenom funkcija surf,plot3,mesh se mogu dobiti 3D grafici.

Veza sa drugim jezicima

uredi

MATLAB može da pozove funkcije napisane za programske jezike C i Fortan.Od 2014. dodata je dvostruka povezanost sa Pajtonom. Biblioteke napisane u Perlu ili Javi mogu biti direktno pozvane iz MATLABa,a i mnoge bibloteke iz MATLABA (npr. XML) su implementirane u Javi.Pozivanje MATLABA u Javi je komplikovanije ali se me može izvesti pomoću MATLAB toolbox.

Licence

uredi

MATLAB je vlasništvo firme MathWorks.Iako MATLAB proizvodi mogu razviti MATLAB funkcije koje mogu biti korišćene sa .NET ili Java okruženja budući razvoj će i dalje biti povezan sa MATLAB jezikom.

Alternative

uredi

MATLAB ima mnogo konkurentnih programa.Reklamni konkurenti uključuju Mathematica,TK Solver,Maple i IDL.Postoje takodje i besplatni konkurenti GNU Octave,Scilab,FreeMat,Julia i SageMath koji se smatraju najvećim konkurentima MATLAB-a.Medju ostalima jezicima koji koriste nizove kao osnovne subjekte su APL,Fortran 90 i više,S-Lang.Tu su i biblioteke koje dodaju sličnu funkcionalnost i ostalim jezicima kao što su IT++ za C++, Perl Data Language za Perl, ILNumerics za .NET.GNU Octave se izdvajaju od ostalih konkurenata,jer su one nadskup MATLAB-a.

Proširenje fajlova

uredi

MATLAB

.m

MATLAB kod(funkcija,kalsa)

.mat

MATLAB podaci(binarni fajlovi za čuvanje promenljivih)

.fig

MATLAB figure(napravljene pomoću GUIDE)

.mlapp

MATLAB aplikacije(napravljene pomoću App Designer)

Simulnik

.mdl

Simulnik model

.slpx

Simulnik zaštićen model

Simspace

.ssc

Simscape model

MuPAD

.mu MuPAD code

Literarura

uredi
  • Gilat, Amos. MATLAB: An Introduction with Applications John Wiley & Sons. (2nd изд.). 2004. ISBN 978-0-471-69420-5. .
  • Ferreira, A.J.M.. MATLAB Codes for Finite Element Analysis. Springer. 2009. ISBN 978-1-4020-9199-5..
  • Quarteroni, Alfio. Scientific Computing with MATLAB and Octave. Springer. 2006. ISBN 978-3-540-32612-0..
  • Lynch, Stephen. Dynamical Systems with Applications using MATLAB. Birkhäuser. 2004. ISBN 978-0-8176-4321-8..

Spoljašnje veze

uredi