Professional Documents
Culture Documents
Matlab Predavanja1
Matlab Predavanja1
Kad otvorimo MATLAB, znak >> u komadnom prozoru označava da je MATLAB spreman
za rad. Tipove varijabli ne moramo sami zadavati kao u C++ ili u Javi, MATLAB to
automatski uradi za nas. Po defaultu, rezultat ispiše sa tačnosti od 4 decimale.
x = 2+{3+[4+5(2+3)]+4}
pišemo
x = 2+(3+(4+5*(2+3)+4)
Tačku-zarez na kraju reda stavljamo ako ne želimo da se rezultat ispiše odmah, ali hoćemo da
se sačuva u memoriji.
e = 2+3;
Matrice - uvod
Pišemo ih u obliku
a = [1 2 3 ; 4 5 6 ; 7 8 9]
Funkcije
U MATLAB-u možemo jednostavno praviti grafove gotovo svih matematičkih funkcija.
Zadavanje perioda:
i = 0: 0.01:5;
Zadavanje funkcije:
y=i.^2;
Crtanje grafa:
plot(i, y)
Druge opcije:
plot(i, y, 'm*')
plot(i, y, 'm+')
DRUGO PREDAVANJE
TIPOVI PODATAKA
Najveći tip podataka je polje ili array. U početku je bila matrica, a poslije je prijeđeno na polje
Polje
(array)
Kreiranje
Logički Znakovni Numerički Polja (Cell) Java klase Struktura
funkcije
korisnička
cjelobrojni
klasa
jednostruka
preciznost
dvostruka
preciznost
Logički podaci
Logički podaci su true i false.
Numerički podaci
Tip podatka int može biti int 8, 16, 32 i 64.
Rasponi:
A = 2.354
B = int(2.354) = 2
C = -2.365
D = uint(C) = 0
a = 2; b = 3;
c = complex(a, b)
d = abs(c)
e = real(c)
f = imag(c)
g = conj(c)
Polja
POLJE A = {'edin' '[1,2,3;4,5,6] 'danas je lijep dan', 'a+i*b' 'edin' 'sin(x)+1'}
A {1, 3}
Strukture
Sintaksa:
S(1)
S
S.Prezime
Java klase
Upotreba jave u MATLAB-u, ali nije klasična java. Mi možemo povezati javu i MATLAB.
Kreiranje funkcija
Možemo napraviti svoju funkciju, koristimo kreiranje funkcija.
OPERATORI
TREĆE PREDAVANJE
Upravljačke naredbe (petlje)
Petlje su iste u svim programskim jezicima. Postoje tri vrste petlji:
- naredbe ciklusa.
To su petlje koje imaju neki broj ponavljanja - for i while. For petlja se koristi kad
imamo tačno određen broj ponavljanja. Potpuno je ista u svim programskim jezicima,
samo je sintaksa malo drugačija. Opšti oblik:
for x = pocetak:korak:kraj;
naredbe
.
.
.
end
for x = 1:0.1:5
...
end
Ako je prvi broj 1, ne mora se pisati.
Unutar for petlje može biti veliki broj naredbi – teoretski neograničen. U MATLAB-u
for-petlja se završava sa end
For petlje mogu biti ugniježđene ali ne smiju biti ukrštene. Ne smije da počne jedna,
pa počne druga, pa završi prva, pa završi druga.
k = 1;
for i = 1:3;
for j =1:3;
A(i,j)=k;
k=k+1;
end
end
disp('Unesena matrica je')
A
Druga naredba ciklusa je while, koja u prijevodu znači radi sve dok nije ispunjen
uslov. Shodno tome, ona može da ide u beskonačnost, pa moramo paziti kad je
zadajemo da se to ne desi. Sintaksa:
while uslov
naredbe
naredbe
.
.
.
end
i = 7;
while i >=0
fprintf('%d prolazak kroz petlju \n', i) %formatirani ispis na ekranu
postotak pa d znači cijeli broj, f broj sa zarezom
i = i-1;
end
Druga nareda za ispis je disp(), a komentari se postavljaju sa %.
ČETVRTO PREDAVANJE
ELEMENTARNE FUNKCIJE
Funkcija je svako preslikavanje jednog skupa na drugi.
f:X->Y
Stepenovanje: xy
y=x2 [0,6]
y=x2.2
x = 0:0.01:6;
y = x.^2;
plot(x, y)
Polinomi
𝑃(𝑥) = 𝑎𝑛 𝑥 𝑛 + 𝑎𝑛 − 1𝑥𝑛 − 1
P=[1 0 3 -5 2]
Najčešće se traži korijen polinoma – tačke u kojima je taj polinom jednak nuli. Za to se koristi
naredba roots.
roots(P)
q = [1 0 1]
Dijeljenje polinoma koristi naredbu deconv. Tu je malo drugačiji slučaj – dobijemo polinom i
ostatak. Rezultat mora biti:
[n, r] = deconv(p, q)
Trigonometrijske funkcije
To su sin, cos, tg, i ctg. Sintaksa: sin(x), cos(x), tan(x) i cot(x).
Ciklometrijske funkcije
arkusi
arcsin(), arccos
i=-1:0.01:1
Hiperbolne funkcije
sinh, cosh, tanh, coth
asinh, acosh
Eksponencijalne funkcije
Bilo koja funkcija ax.
ex
Logaritamske funkcije
Suprotno od eksp, postoje dekadni, prirodni,
PETO PREDAVANJE
Matrice
A(2,3) ispis tog clana
D= size(A)
Transponovana_matrica_A = A'
A = [1 5 -4; 4 -2 1; 3 8 0]
B = inv(A)
Grafičke dunkcije 3D
Prva naredba za crtanje linijskih dijagrama je plot3; sintaksa je jednostavna kao kod plot samo
što ima tri koordinate, x, y i z.
plot3(x,y, z)
Načini prikaza:
Gotovo sve naredbe za crtanje grafova imaju i svoju kraću verziju, a to je ez(naredba), npr
ezplot3, ezsurf3..... Kod ove naredbe olakšan je način unosa podataka. Uz samu naredbu unosi
se i ulazni vektor.
ezplot3('sin(t)', 'cos(t)', 't', [0 6*pi], 'animate')
axis square
surf(z)
surfc pored površinskog dijagrama crta konture spram visine dijagrama. Sintaksa je ista.
[x, y]=meshgrid([0:0.1:5], [0:0.1:5]);
z = (cos(x)).^2+(sin(y)).^2;
surfc(x, y, z);
colormap spring
contour3(Z)
contour3(Z, n)
[x, y]=meshgrid([-2:0.1:2], [-2:0.1:2]);
z = x.*exp(-x.^2-y.^2);
contour3(x, y, z, 100)
colormap spring
colorbar
Ezsurf
ezsurf('sin(x).*sin(y).*exp(-x.^2-y.^2)', [-pi pi -pi pi]);
colormap cool
colorbar
x = [0 1 1 0];
y = [0 0 1 1 ];
z = [0 0 1 1];
c =[1 1 1 0.5];
fill3(x, y, z, c)
colormap winter
colorbar
ANTI MACE
Pomjeranje oko nečega.
Kretanje može biti samo oko jedne ose ili istovremeno oko više.
5 duzina, ajde 4 dane crtam ponovo