MATLAB
Programer(i) | MathWorks |
---|---|
Prva verzija | 1970ih |
Najnovija verzija | R2017a 9. mart 2017. |
Pisano u | C, C++, Java |
OS | Višeplatformski |
Tip | Tehničko računarstvo |
Licenca | Vlasnička |
Veb-sajt | MATLAB |
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 C, C++, C#, Java, Fortran i Python.
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 | uredi izvor]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 | uredi izvor]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 | uredi izvor]
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 | uredi izvor]
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 | uredi izvor]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 | uredi izvor]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 | uredi izvor]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 | uredi izvor]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 | uredi izvor]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 | uredi izvor]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 | uredi izvor]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 | uredi izvor]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 | uredi izvor]- 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..