2D grafika
Osnovna naredba dvo-dimenzionalne grafike u MATLABu je plot.
Ukoliko želimo nacrtati graf funkcije f(x)=2sin(pi*x)cos(pi/2+pi*x) na intervalu [–1,1] koristeci ukupno 100 točaka radimo na sljeceći način:
- Odaberemo uzorke na x - osi
>>x=linspace(-1,1,100);
-
za svaki uzorak sa x osi izračunamo vrijednost funkcije y
>>y=2*sin(pi*x).*cos(pi/2+pi*x);
- pozivom naredbe plot kreiramo graf koji se iscrtava na način da se sparuju točke iz x i y matrica te se iscrtavaju u koordinantnom sustavu
>>plot(x,y)
Ime grafa, te oznake x i y osi dodaju se na slijedeći način:
>>title('Graf')
>>xlabel('x os')
>>ylabel('y os')
Dodavanje mreže na sliku izvodi fja grid.
>>grid
Mrežu uklanjamo sa grid ili grid off.
Mijenjanje boje linije kojom je graf nacrtan izvodimo trećim parametrom funkcije plot.
>>plot(x,y,'r+')
gdje treći parametar može imati slijedeće vrijednosti:
BOJE | LINIJE |
y yellow | . |
m magenta | o |
c cyan | x |
r red | + |
g green | - |
b blue | : |
w white | -. |
k black | -- |
Na isti crtež može se prikazati i više grafikona. Npr.
>>plot(x,y,'k-', x,y/2,'g—');
Uključimo još prikaz legende:
>>legend('Funkcija','Pola funkcije');
Poziv funkcije plot prebriše sadržaj postojećeg crteža. Naredba hold omogućava da svi daljnji pozivi funkciji plot crtaju grafikone na istom crtežu. Isključuje se sa hold off.
Za brisanje crteža koristimo clg (ili clf).
Za povećavanje prikaza koristimo naredbu zoom. Klikom na sliku povećavamo željeni dio. Zoom out vraca prikaz na standardnu veličinu.
Mijenjanje područja x i y osi vrši fja axis u obliku axis([xmin xmax ymin ymax]). Npr:
>>axis ([-2 2 -1 1])
3D grafika
Osnovna naredba koju koristimo za prikaz 3D grafike je plot3.
>>t = 0:pi/50:10*pi;
>>plot3(sin(t),cos(t),t)
>>grid on
>>axis square
Druga naredba koja se koristi za prikaz 3D slike je naredba "mesh(x,y,z)". Pri tom, x i y su vektori dimenzija n, odnosno m, a z je matrica dimenzija nxm. Ako izostavimo x i y, u tom će slučaju odgovarajućim vrijednostima na x, odnosno y osi biti pridružena odgovarajuća vrijednost matrice z. Konkretno
>>a=1:10
>>b=11:20
>>c=21:30
>>d=linspace(25,30,11)
>>e=linspace(35,40,11)
>>m=[a;b;c;d;e;e;d;c;b;a]
>>mesh(m)
rezultira prikazom
Također je moguće oblike prikazati s ispunjenim površinama >>surf(m)
rezultira prikazom
Zadatak na vježbi
a) Napisati naredbu u Matlabu koja računa traženu funkciju, a zatim nacrtati graf funkcije za zadane intervale varijable x sa korakom 0.01.
1. f(x)=(x+1).^(0.5) , x=[1,100]
2. f(x)=(x+1).^(1/3) , x=[1,100]
3. f(x)=sqrt(1./(4+x.^2)) , x=[1,10]
4. f(x)=sqrt(x.^2-2) , x=[1.5,10]
5. f(x)=(-(cos(x))./(3*((sin(x)).^3))+4/3*1./tan(x) , x=[1,3], x=[6,7], x=[10,20], x=[1,100]
b) Funkcije 1) i 2) nacrtati na istom grafu, različitim bojama i uzorcima, te ucrtati mrežu, legendu i označiti osi.
c)
1. Uz pomoć naredbe mesh dobiti sliku prikazanu ovdje.
Pomoć : argument naredbe mesh je matrica visina točaka u 3D grafu.
2. Dobiti istu sliku s ispunjenim površinama.