76
Uvod Matrice Skripte i funkcije Grafika MATLAB 10. travnja 2012. MATLAB

MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

MATLAB

10. travnja 2012.

MATLAB

Page 2: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Table of contents

1 Uvod

2 MatriceVarijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

3 Skripte i funkcijeSkripteNaredbe grananjaFunkcije

4 GrafikaFunkcija PlotMijenjanje elemenata grafaRad sa grafikom

MATLAB

Page 3: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

MATLAB

Matlab (MATrix LABoratory) je programsko okruzenje za tehnickoi znanstveno racunanje.Omogucava:

izvodenje kompleksnih proracuna

vizualizaciju rezultata

izvodenje simulacija

programiranje

MATLAB ima vlastiti (interpretirani) programski jezik visokognivoa koji je jednostavan za koristenje i upotrebljavastandardiziranu matematicku sintaksu. Podrzava iobjektno-orijentirani pristup.

MATLAB

Page 4: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Korisnicko sucenje

Dijelovi korisnickog sucelja:

Command Window (interaktivna konzola) - interaktivnakonzola u koju utipkavamo naredbe i vidimo njihov rezultat

Workspace (radni prostor) - popis svih varijabli i njihovaosnovna svojstva

Command History - popis ranije izvrsenih naredbi

Current Folder (trenutni direktorij) - direktorij u kojem senalaze programi dostupni za izvrsavanje

MATLAB

Page 5: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Help

MATLAB dolazi sa vrlo iscrpnim sustavom pomoci, pod menijem

Help -> Product Help

Osim toga, pomoc je dostupna u interaktivnoj konzoli:

help eig

MATLAB

Page 6: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Znacenje

U MATLAB okruzenju, matrica je pravokutno polje brojeva.1× 1 matrice zovemo skalarima.Matrice sa jednim stupcem ili retkom zovemo vektori.Unosimo ih na vise razlicitih nacina:

eksplicitan unos niza elemenata

punjenje matrice koristeci vanjsku podatkovnu datoteku (eng.external data files)

generiranje matrice koristenjem ugradenih funkcija (eng.built-in functions)

kreiranje matrica koristenjem datoteka sa vlastitim funkcijama

MATLAB

Page 7: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Operacije sa matricama

Upisemo u command window

A = [ 16 2 5 7; 5 11 3 23; 1 2 1 5; 7 1 15 17 ]

i stisnemo Enter. S time smo kreirali matricu A reda 4× 4. Akozelimo provjeriti sto nam predstavlja A, samo upisemo A i stisnemoEnter.Pogledajmo koje funkcije su nam dane za rad sa matricama(build-in functions).sum(A), A’, A.’, diag(A), size(A), length(A),

min(A), max(A)

nam redom daju: retcani vektor koji je suma pojedinih stupacamatrice A, matricu koja je adjungirana matrica matrice A,

MATLAB

Page 8: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Operacije sa matricama - nastavak

matricu koja je transponirana matrica matrice A, stupcani vektorkoju cine elementi na glavnoj dijagonali matrice A, . . .Ako zelimo dohvatiti elemente matrice u i-tom retku i j-tomstupcu, izraz je A(i, j).Ako zelimo dohvatiti cijeli k-ti stupac, izraz je A(1:4;k).Ako zelimo dohvatiti cijeli k-ti redak, izraz je A(k, 1:4)Pokusajmo unijeti izraz A(4, 6). Normalno, javlja nam se graska,jer matrica nema toliko stupaca (sto i pise u objasnjenju greske).Ako zelimo promijeniti vrijednost pojedinog elementa matrice (navrijednost k), koristimo izraz A(i, j) = k.

MATLAB

Page 9: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Generiranje matrica

zeros(i, j) nam daje matricu i × j sa svim elementima 0.ones(i, j) nam daje matricu i × j sa svim elementima 1.Konkatenacija je spajanje vise manjih matrica u jednu veliku.Npr. A=[1 2; 3 4];

B=[5 6; 7 8];

qverb—C=[A ; B]—Cijeli k-ti redak matrice brisemo sa A(k, :) = [].Determinantu matrice A dobijamo sa det(A).Pogledajmo gresku koju nam MATLAB javlja u slucaju:A = [2 4; 8 1]; inv(A).poly(A) daje koeficijente karakteristicnog polinoma matrice A.

MATLAB

Page 10: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Napomena - polinomi

Polinomi se u MATLABU predstavljaju sa retcanim vektorima kojisadrzavaju koeficijente uz pojedine potencije varijable x. Npr. akobi zeljeli raditi sa polinomom P(x) = 7x3 + 4x2 + 3, u MATLABUbi unijeli P =[7 4 0 3]Neke funkcije za rad sa polinomima su:roots(P), conv(P, Q), [R S] = deconv(P, Q), polyder(P)koji redom daju:korijene polinoma P, umnozak polinoma P i Q, dijeljenje polinomaP i Q (R je rezultat dijeljenja, S je ostatak), derivacija polinomaP.

MATLAB

Page 11: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Operatori

Bez matematickog znanja o matricama, one nam predstavljajudvo-dimenzionalna numericka polja. Lista operatora za rad sanjima je:

+ zbrajanje− oduzimanje.∗ mnozenje pripadnih elemenata./ dijeljenje pripadnih elemenata.\ dijeljenje slijeva pripadnih elemenata.^ potenciranje pripadnih elemenata.’ transponiranje

MATLAB

Page 12: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Primjer - matrice

Primjer

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

B=[1 1 1 1; 2 2 2 2; 3 3 3 3; 4 4 4 4];

A + B

A - B

A.*B

A./B

A.\B

A.^B

A.’

A(~isprime(A))=0

MATLAB

Page 13: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Slaba tipiziranost

MATLAB je slabo tipiziran jezik. Nije potrebno deklarirativarijable, pojedine varijable mogu mijenjati svoj tip ”u let”:

a = [1 2 3; 4 5 6; 7 8 9]

a = ’neboder’

a.element = 123

Kada MATLAB naide na novu varijablu, automatski se kreira tavarijabla i alocira se spremnik prikladne velicine. Ako varijabla vecpostoji, MATLAB joj promijeni sadrzaj i, ukoliko je potrebno,alocira novi spremnik.Ime varijable mora poceti sa slovom. Ime varijable moze bitiproizvoljne duljine, ali MATLAB za raspoznavanje koristi prvihnamelength znakova.

MATLAB

Page 14: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Interne varijable

eps=2.2204e-16 tocnost realnih brojeva(razlika izmedu 1.0 i prvogveceg)

realmin=2.2250733858507202e-308 vrijednost najmanjeg realnogbroja

realmax=1.797697134862316e+308 vrijednost najveceg realnogbroja

pi=3.14154265358979 vrijednost broja

Inf dobija se dijeljenjem sa 0 ili ako dode do overflowa

Nan (not a number) se dobiva evaluacijom izraza tipa 00 ili

∞∞

i,j imaginarna jedinica kompleksnih brojeva

MATLAB

Page 15: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Eksterne varijable

Ime varijable:

potrebno je razlikovati uporabu velikih/malih slova

maksimalni broj znakova je 31

prvi znak mora biti slovo

specijalne varijable ciji su nazivi rezervirani: ans, pi, eps, flops,inf, nan, i, j, nargin, nargout, realmin, realmax

MATLAB

Page 16: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Napomena - save, load

Deklarirane varijable mozemo spremiti u binarnu mat datoteku ikasnije ih ponovno ucitati. Varijable x, yy, ZZZ spremamo udatoteku var.mat pomocusave(’var.mat’, ’x’, ’yy’, ’ZZZ )Sve deklarirane varijable spremamo u datoteku var.mat pomocusave( ’var.mat’)Varijable x, yy, ZZZ ucitavamo iz datoteke var.mat pomocuload( ’var.mat’, ’x’, ’yy’, ’ZZZ’ )Sve varijable koje postoje u datoteci var.mat ucitavamo saload( ’var.mat’ )

MATLAB

Page 17: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Brojevi

Neki zapisi brojeva su:

4, 57, 0.03004, 1.34e23, 2i, 5e2j

MATLAB interno sprema brojeve u long formatu koristeci IEEEstandard sa pomicnom tockom. Ti brojevi imaju preciznost odotprilike 16 znacajnih decimalnih brojeva.( od 10−308 do 10308).

Primjer

x=3333333333333333333333333333333333333331;

y=3333333333333333333333333333333333333332;

x==y

Zasto MATLAB javlja da su x i y jednaki?

MATLAB

Page 18: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Primjer (kompleksni brojevi)

Primjer

Koristimo funkciju sort na dva kompleksna broja:

a = 2 + 5i;

b= 1 + 7i;

sort([a, b])

Zasto? Jer se sortira po fazama.

angle(a)

angle(b)

MATLAB

Page 19: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Operatori

+ zbrajanje- oduzimanje* mnozenje/ dijeljenje\ dijeljenje slijeva^ potencija’ adjungiranje

MATLAB

Page 20: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Logicki i relacijski operatori, funkcije

Svi logicki i relacijski operatori i navedene funkcije se izvrednjavajupo elementima.

~A (logicko NE), A&B (logicki I), AIB (logicki ILI)

A<B, A<=B, A>B, A>=B, A==B, A~=B

sin, cos, asin, acos, sinh, cosh, asinh, acosh, exp,

log, log10, sqrt, abs, round

MATLAB

Page 21: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Ugradene funkcije

MATLAB nam pruza veliki broj standardnih matematickih funkcija(npr. abs, sqrt, exp, sin). Listu mozemo dobiti naredbomhelp elfunSiru listu mozemo dobiti naredbamahelp specfun ili help matInf se dobija dijeljenjem sa 0 ili ako dode do overflowa. NaN (not anumber) se dobiva evaluacijom izraza tipa 0

0 ili ∞∞

MATLAB

Page 22: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Funkcija format

MATLAB moze ispisivati realne brojeve u 4 osnovna formata. Npr.kako se a = 31.4 ispisuje u razlicitim formatima?

a = 3.14

format short

a

format long

a

format short e

a

format long e

a

MATLAB

Page 23: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Visedimenzionalna polja

Visedimenzionalna polja u MATLAB okruzenju su polja sa 3 ili viseindeksa.

Primjer

A = ones(2, 3, 4);Asum(A, 1)sum(A, 2)

MATLAB

Page 24: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Cell-arrays

Cell-arrays u MATLABU su visedimenzionalna polja ciji elementi sukopije drugih polja. Najcesce ih kreiramo stavljanjem objekata uviticaste zagrade.

Primjer

A=[1 2 3; 4 5 6; 7 8 9];B={ A sum(A) prod(prod(A)) }B{1}B{2}B{3}A(1, 1)=10B{1}

Primijetimo, promijenili smo A, ali se sa B nije nista dogodilo.

MATLAB

Page 25: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Primjer

Primjer

A = cell(5, 1);for n = 1:5A{n} = ones(n);endAA{1}A{2}

MATLAB

Page 26: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Znakovi i tekst

Tekst se unosi u MATLAB koristeci navodnike.z = ’Rezultat’Dobili smo polje od osam znakova. Interno se ti znakovi spremajukao brojevi.a= double(z)b = char(a)

MATLAB

Page 27: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Primjer - znakovi

Primjer

a = [z, ’ u redu’]

b = [z; ’ u redu’]

c = [z; ’normalan’]

d = char(z, ’u redu’, ’jer char sam uredi’,

’(doda svakom redu tako da su redovi iste duljine)’)

e = { z; ’sa cell-array-ima nema problema’;

’Kako to?’ }

length(c)

size(d)

MATLAB

Page 28: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Strukture

Strukture su visedimenzionalna polja u MATLABU, do cijihelemenata se dolazi preko njihovih imena (eng. field designators).Strukture mogu sadrzavati elemente raznih tipova:

Primjer

Kreirajmo strukturu s koja se sastoji od tri polja:

s.ime = Mirko;

s.ocjena = 5;

s.matrica = [1 2 3; 4 5 6];

s

k-ti element strukture dohvacamo preko s(k), a pojedino poljek-tog elementa sa s(k).imepolja

MATLAB

Page 29: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Primjer - nastavak

Primjer

Moguce je doznati da je li nesto element strukture:

isfield( s, ’ime’)

isfield( s, ’prezime’)

Takoder, mozemo dodavati element po element:

s(2).ime = ’Petra’;

s(2).ocjena = 4;

s(2).matrica = [ 7 8 9; 10 11 12 ]

Pregled svih ocjena mozemo dobiti sa [s.ocjena], a varijable saimenima mozemo kreirati sa [A B] = s.imena

MATLAB

Page 30: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Simbolicke varijable

Varijable koje koristimo kod simbolickog izracuna je potrebnokreirati kao x=sym(’x’) ili syms x y .Ukoliko je potrebno kreirati kompleksnu simbolicku varijablukoristimo syms x y real; z = x + y*i.Simbolicku varijablu mozemo zamijeniti sa nekom vrijednostikoristeci subs(f,x,xvrijednost)

Primjer

S=sym(’sin(x)^2+cos(x)^2’);

S

simplify(S)

MATLAB

Page 31: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Kreiranje simbolickih izraza

Simbolicke izraze i varijable kreiramo na dva nacina: definiramosimbolicki izraz odjednom pomocu naredbe sym (kako smo vecpokazali) ili naredbom syms navedemo sve simbolicke varijable, azatim definiramo simbolicki izraz S (bez koristenja sym). U prvomslucaju u radnom prostoru bit ce samo S, dok ce u drugom slucajubiti S, a, x i y.

Primjer

syms a b c ;

A=[a b c;a b c;a b c];

A

sum(A(1,:))

MATLAB

Page 32: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Primjer - deriviranje

Primjersyms x;

f = x^2*sin(x);

diff(f,2)

syms y z;

g = y^2*z+2*z^2*y;

diff(diff(g,y),z)

MATLAB

Page 33: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Primjer - integriranje

Primjersyms x;

f = x*exp(-x);

F = int(f)

syms y a b;

g = y*exp(-y);

G = int(g, y, a, b)

subs(G, {a,b}, [0,10])

MATLAB

Page 34: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Primjer - limes

Primjer

syms x a b;

f = x*(1+a/x)^x*sin(b/x);

limit(f,x,inf)

syms y;

limit(1/y, y, 0)

limit(1/y, y, 0, ’left’)

limit(1/y, y, 0, ’right’)

MATLAB

Page 35: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Primjer - pojednostavljenje izraza

Primjersyms x y;

expand(cos(x + y))

factor(x^3 - y^3)

syms z;

f = (z^2 + 5*z + 6)/(z + 2);

simplify(f)

MATLAB

Page 36: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Varijable, brojevi, ugradene funkcijeStrukture podatakaSimbolicko racunanje

Primjer - jednadzbe

Primjer

S=solve(’x^2+y^2-1=0’,’y=4*sqrt(3)*x^3’)

S.x

S.y

dsolve(’Dy = y + sin(t)’)

dsolve(’Dy = y + sin(t)’,’y(0)=1’)

MATLAB

Page 37: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Skripte i funkcije

Naredbe se mogu unositi jedna po jedna u command windowu ilimozemo napisati niz naredbi u neku datoteku koje onda izvrsimokao i svaku drugu MATLAB funkciju. Za unos niza naredbikoristimo bilo koji editor (najbolje koristiti MATLAB Editor).Postoje dvije vrste programskih datoteka:

Skripte . . . ne primaju input argumente, ne vracaju outputargumente. Koriste se podacima iz radnog prostora

Funkcije . . . primaju input argumente, vracaju outputargumente. Interne varijable su lokalne samo za tu funkciju.

Sadrzaj neke programske datoteke imena nekoime mozemo vidjetinaredbomtype nekoime

MATLAB

Page 38: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Nacin rada

Niz naredbi kojeg zelimo kasnije ponovno pozvati mozemo napisatiu bilo kojem editoru teksta i spremiti u m-datoteku.MATLAB takodder ima svoj editor:Window->Editor

Ako niz naredbi spremimo u datoteku skripta.m, onda ih mozemoredom sve izvrsiti tako da u interaktivnoj konzoli napisemo naredbuskripta. Vazno je da datoteka skripta.m bude ili u trenutnomdirektoriju (Current Folder) ili u putanji (path). Bilo koji direktoriju putanju mozemo dodati preko File->Set Path ...

MATLAB

Page 39: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Primjer

U nekom tekst-editoru unesemoclear; A=fix(rand(3)*10);

B=fix(rand(3)*10);

whos

te spremimo pod imenom primjer.m.Ako sada u konzoli upisemo primjer, Matlab ce potraziti m-file sanavedenim imenom i izvrsiti naredbe zapisane u njemu, sto cerezultirati brisanjem svih postojecih varijabli (clear), stvaranjemdviju slucajnih matrica A i B, te ispisivanjem trenutnih varijabli saprikazom potrosnje memorije svake varijable (whos). Imenam-datoteka ne smiju biti ista kao i imena standardnih naredbi ilifunkcija, te se iste moraju snimiti u neki od foldera koji Matlabpregledava prilikom izvodenja (path).

MATLAB

Page 40: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Petlje1

Unutar skripti dostupne su nam standardne naredbe za grananje, tepetlje:

if uvjet_1

naredba_1;

naredba_2;

elseif uvjet_2

naredba_3;

else

naredba_4;

end

MATLAB

Page 41: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Petlje2

for brojac = vektor-redak

naredba_1;

naredba_2;

end

while uvjet

naredba_1;

naredba_2;

end

MATLAB

Page 42: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

If - then

Ako brojevi x i y nisu preblizu, napravite 1x−y .

Primjer

x = input(’Unesite prvi broj:’);

y = input(’Unesite drugi broj:’);

if abs( x - y ) < 1e-8

’Brojevi x i y su preblizu’

else

z = 1 / ( x - y );

end

z

MATLAB

Page 43: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

If - else if - else

Ispisite da li je unijeti broj pozitivan, negativan ili jednak nuli.

Primjer

broj = input(’Unesite broj: ’);

if broj < 0

disp(’Broj je negativan’)

elseif broj > 0

disp(’Broj je pozitivan’)

else

disp(’Broj je jednak nuli’)

end

MATLAB

Page 44: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Switch

Napisite koji broj od 1 do 5 je unijet. Ako nije od 1 do 5, napisite’Unijeti broj nije ispravan’.

broj = input(’Unesite broj od 1 do 5: ’);

switch broj

case 1

display(’Unijeti broj je 1’)

case 2

display(’Unijeti broj je 2’)

case 3

display(’Unijeti broj je 3’)

case 4

display(’Unijeti broj je 4’)

MATLAB

Page 45: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Switch - nastavak

case 5

display(’Unijeti broj je 5’)

otherwise

display(’Unijeti broj nije ispravan!’)

end

Napomena: naredbu switch koristimo samo ako uvjet kojiprovjerava postize konacan (mali) broj stanja. Ne mozemo gakoristiti ako je uvjet da je stanje vece ili manje od necega.

MATLAB

Page 46: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

For petlja

Primjer

data=[3 9 45 6; 7 16 -1 5];

for n = data

y = n(1) - n(2)

end

MATLAB

Page 47: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

While petlja

Primjer

S=1;

n=1;

while S+(n+1)^2 < 100

n = n + 1;

S = S + n^2;

end;

[n, S]

MATLAB

Page 48: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Napomena

Pogledati:continuebreakreturnerrortry - catch

MATLAB

Page 49: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Nacin rada

Funkcije takoder mozemo spremiti u m-datoteku. Unutar jednem-datoteke moze biti vise funkcija, ali samo prvu (koja mora imatiime kao i datoteka) ce biti moguce pozvati izvana. Ostale funkcijeunutar m-datoteke su pomocne.Unutar skripte nije moguce definirati funkcije.Definicija funkcije:function [x_1, x_2, ...] = ime_fje(p_1, p_2, ...)

x_1, x_2, ... su povratne vrijednosti, a p_1, p_2, ...

parametri funkcije.Funkciju treba spremiti u datoteku ime_fje.m

Funkcija se iz konzole poziva sa:[var_1, var_2, ...] = ime_fje( arg_1, arg_2, ... )

MATLAB

Page 50: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Primjer prvi

function s = sumakvadrata( v )

% Racuna sumu kvadrata svih elemenata vektor-retka v

if( size( v, 1 ) ~= 1 )

error( ’Funkciji nije poslan vektor-redak!’ );

end

s = 0;

for i = 1 : length( v )

s = s + kvadrat( v( i ) );

end

end

function k = kvadrat( x )

k = x .^ 2;

end

MATLAB

Page 51: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Primjer - nastavak

U editoru (Desktop -> Editor)smo prethodni primjer napisali ispremili pod imenom sumakvadrata.m.U interaktivnoj konzoli pokrenemo:v = [2 5 1];

x = sumakvadrata( v );

x

Funkcija kvadrat nije dostupna iz konzole (to je podfunkcija).Funkcija sumakvadrata je glavna funkcija.MATLAB prosljeduje parametre po vrijednosti - dakle, funkcija nemoze promijeniti varijablu koja joj je poslana (stvara se lokalnakopija unutar funkcije).Dio iza % (pa do kraja retka) unutar funkcije je komentar. Mogucega je vidjeti naredbom help sumakvadrata

MATLAB

Page 52: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Primjer drugi

Kreirajmo m-file koji racuna povrsinu trokuta sa stranicama a, b, cpo formuliP =

√(s ∗ (s − a) ∗ (s − b) ∗ (s − c)), s = (a + b + c)/2.

function P = povrsina(a,b,c)

s = (a+b+c)/2;

P = sqrt(s*(s-a)*(s-b)*(s-c))

Ukoliko ovaj m-file snimimo pod imenom povrsina.m pozivamo gau Matlabu na slijedeci nacin:povrsina(3,4,5)

MATLAB

Page 53: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Zadatak

Napisite skriptni M-file koji trazi od korisnika da upisuje brojevesve dok im je suma manja od 200. Ispisuju se svi unijeti brojevi ikoliko ih je.

suma=0;

br=0;

while suma < 200

br = br+1;

a(br) = input(’Upisi broj:’)

suma = suma + a(br);

end

a

br

MATLAB

Page 54: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Zadatak

Napisite skriptni m-file koji trazi od korisnika da upisuje broj svedok ne upise broj djeljiv sa 7, ispise taj broj i koliko je brojevaupisano.

brojac = 0;

a = 1;

while mod(a, 7) ~= 0

a = input(’Unesite broj: ’);

brojac = brojac + 1;

end

a

brojac

MATLAB

Page 55: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Zadatak

Kreirajte funkcijski m-file koji kao ulaznu varijablu prima prirodnibroj i ispisuje taj broj te sve njegove djelitelje.

function [broj, dj]=djelitelji(br)

br2=br; d=2; i=1; dj=[];

while br2>1

if mod(br2, d)==0

br2=br2/d; dj=[dj d];

else

d=d+1;

end

end

br

dj

MATLAB

Page 56: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Anonymous funkcija

To je MATLAB funkcija definirana jednim MATLAB izrazom.Sintaksa za kreiranje je f = @(listaarg) izraz

Primjer

kvadrat = @(x) x.^2;

a = kvadrat(5)

MATLAB

Page 57: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Globalne varijable

Ako varijablu u funkciji proglasimo globalnom (naredba globalimevarijable), ona je dostupna svim funkcijama.Ako u interaktivnoj konzoli upisemo isto, varijabla je dostupna iglavnom radnom prostoru.

Primjer

Kreiramo funkciju mnozenjekonstantom

function a = mnozenjekonstantom(x)

golobal CONST

a = CONST * x;

MATLAB

Page 58: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Globalne varijable - nastavak

Primjer

a u konzoli

global CONST

CONST = 10;

b = mnozenjekonstantom(5);

CONST = 20;

c = mnozenjekonstantom(5);

b

c

MATLAB

Page 59: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

SkripteNaredbe grananjaFunkcije

Handle funkcije

Za bilo koju Matlab funkciju mozemo kreirati njezin handlepomocu kojeg se poslije mozemo referencirati na tu funkciju.Najcesce handle funkcije koristimo kao argument neke drugefunkcije, npr. prilikom crtanja grafova. U ovom slucaju handlefunkcije sin ce biti fhandle

Primjer

fhandle = @sin

f(5)

MATLAB

Page 60: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Plot - primjena

Plot funkcija ima razne forme, ovisno o input argumentima.

Primjer

x = 0 : pi/100 : 2*pi;

y = sin(x);

plot(x, y)

Ako zelim dodati oznake na osi i sam graf (tu smo i povecalislova), koristimo:

xlabel(’x = 0 : 2/pi’)

ylabel(’Sinus od x’)

title(’Graf funkcije sinus’, ’FontSize’, 12)

MATLAB

Page 61: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Vise funkcija na istom grafu

Primjer

x = 0 : pi/100 : 2*pi;

y = sin( x );

y2 = sin( x - .25 );

y3 = sin( x - .5 );

plot( x, y, x, y2, x, y3)

Vidimo da se razlicitim funkcijama pridruzuju razlicite boje.Mozemo sa strane staviti legendu koristecilegend(’sin(x)’, ’sin(x - .25)’, ’sin( x - .5)’)

MATLAB

Page 62: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Primjer - grafika sa dvije slike

Primjer

t = 0 : pi/20 : 2*pi;

y = exp(sin( t ));

plotyy(t, y, t, y, ’plot’, ’stem’)

xlabel(’X Axis’)

ylabel(’Plot Y Axis’)

title(’Two Y Axes’)

MATLAB

Page 63: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Koristenje radnog prostora

Grafiku mozemo kreirati i koristeci varijable iz radnog prostora.Izaberemo varijable iz radnog prostora (ako su uzastopne, mozemosa Shift+klik, ako nisu mozemo sa Ctrl+klik). Nakon togadesni klik misa nam daje izbor najcesce koristenih nacina crtanjagrafova. Ako zelimo neki drugi, kliknemo More Plots....Napomena: naredbu za crtanje tog grafa vidimo kao zadnjunaredbu u interaktivnoj konzoli.

MATLAB

Page 64: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Elementi grafa

Grafovi su komponirani od objekata. Oni imaju neka svojstva kojase mogu mijenjati. Ta svojstva odreduju kako neki dijelovi grafaizgledaju ili se ponasaju.Na primjer, osi kojima definiramo koordinatni sustav imaju svojstvapoput granice, medusobni odnos, naziv, boju, . . . Linije grafa imajusvojstva poput boje, tip markera koji se koristi za crtanje tocakakoje se koriste za crtanje grafa, stil linije, . . .

MATLAB

Page 65: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Linije grafa

Kod linija grafa mozemo mijenjati boju, stil i markere. To se radisa opcijom ’boja_stil_marker’ na kraju naredbe Plot. Opcijasadrzi od jednog do cetiri znaka unutar navodnika.

Primjer

x = 0 : pi/100 : 2*pi;

y = sin(x);

plot(x, y)

plot(x, y, ’g--o’)

plot(x, y, ’b:d’)

plot(x, y, ’c-*’)

plot(x, y, ’ks’) (kada se ne specificira stil linije, crta se samomarker)

MATLAB

Page 66: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Primjer - markeri

Primjer

x1 = 0 : pi/100 : 2*pi;

x2 = 0 : pi/10: 2*pi;

plot(x1, sin(x1), ’r:’, x2, sin(x2), ’r+’)

MATLAB

Page 67: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Napomena - hold on

Kada crtamo novi graf, po defaultu se stari graf brise i na njegovomjesto dolazi novi. Ako zelimo novi graf samo dodati starom,moramo u konzolu unijeti naredbu hold on, a zatim unijeti novigraf.

Primjer

x = -1 : .1 : 1;

y = x.^3;

plot(x, y)

hold on

z = sin(x);

plot(x, z)

MATLAB

Page 68: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Vise slika, jedan graf

Naredba subplot(m, n, p) particionira prozor za grafiku na m × npolje manjih slika, a trenutni plot je p-ti (brojimo ih redak poredak).

Primjer

x = 0 : pi/100 : 2*pi;

y = sin( x );

z = cos( x );

u = x.^2;

v = x;

subplot(2, 2, 1); plot(x, y)

subplot(2, 2, 2); plot(x, z)

subplot(2, 2, 3); plot(x, u)

subplot(2, 2, 4); plot(x, v)

MATLAB

Page 69: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Osi

Po defaultu MATLAB sam bira vrijednosti na osima prema rubnimvrijednostima danih podataka. Ako zelimo promijeniti vrijednostina osima, koristimo naredbu axis.

Primjer

x = 0 : pi/100 : 2*pi;

y = sin(x);

plot(x, y)

axis([ -5 10 -2 2])

Ako zelimo vratiti postavke osi na pocetak koristimo naredbu axisauto normal.

MATLAB

Page 70: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Primjer - tekst unutar grafike

Primjer

text( 0.5, 0.5, ABC );

text( -2, 1, DEF );

set( gca, XLim, [-3, 3], YLim, [-1, 2] )

MATLAB

Page 71: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Spremanje grafike

Za spremanje grafike koristimo:File -> Save as -> imegrafike, te izaberemo u kojemformatu je zelimo spremiti (npr. FIG-datoteka za MATLABgrafiku, JPG, EPS, . . . ).Ako zelimo spremiti grafiku sa nekim dodatnim opcijama (visinagrafike, sirina grafike, . . . ) koristimo:File -> Export Setup ... , zatim, nakon sto smo izabralineke dodatne opcije, koristimo Apply to Figure,Export -> imegrafike, te izaberemo format.

MATLAB

Page 72: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Generiranje koda grafike

Ako ne zelimo spremiti sam graf nego zelimo sacuvati kod koji jegenerirao grafiku, koristimo opciju na graficiFile -> Generate M-file. Kada zelimo koristiti taj kod zageneriranje grafa u interaktivnoj konzoli, samo unesemo imeM-filea.Paziti: sam kod nema definirane varijable. Njih treba unijeti ukonzoli. Pretpostavimo da smo kod grafike sin spremili u M-fileprimjer. Sada prije samog pozivanja iz konzole, kreiramovarijable koje treba, pa tek onda zovemo primjer sa argumentimakoje smo kreirali.

MATLAB

Page 73: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Plot (3D)

Za crtanje funkcije dvije varijable, prvo generiramo matrice X i Ykoje ce nam predstavljati domenu funkcije. Zatim koristimo X i Yza evaluaciju i crtanje grafike.

Primjer

x1 = linspace(-5, 5, 100);

y1 = linspace(-10, 10, 100);

[X, Y] = meshgrid(x1, y1);

Z = X.^2 + Y.^2;

mesh(X, Y, Z)

Pogledati: Camera Toolbar, Rotate 3D.

MATLAB

Page 74: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Primjer

Jednoliku boju grafa biramo sa:mesh(X, Y, Z, ’EdgeColor’, ’green’)

Ako zelimo mijenjati boju grafa s obzirom na razinske krivulje,koristimo:

surf(X, Y, Z)

colormap hsv

colorbar

Na prozirnost grafa mozemo utjecati sa naredbom alpha(x), gdjeje x broj izmedu 0 i 1 npr.alpha(0.5)

MATLAB

Page 75: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Primjer - Property Editor

Unesemox = -1 : .1 : 1;

y = x.^3;

plottools

te izeberemo x i y varijable, te npr. funkciju plot. Drzimo lijeviklik na liniji grafa pritisnut sve dok se ne pojaviProperty Editor - Lineseries. Promijenimo tu neka svojstva(npr. line to no line, marker to o (circle), marker size to 4.0,marker fill color to red).Mozemo promijeniti i funkciju kojom crtamo (izaberemo varijableiz Variables na grafici, te zatim desnim klikom dobijamo funkcijeza crtanje, te izaberemo jednu (npr. area ili stem)

MATLAB

Page 76: MATLAB - pmfst.unist.hrgorerc/MPAII/BeamerMatlab.pdf · Uvod Matrice Skripte i funkcije Gra ka Varijable, brojevi, ugradene funkcije Strukture podataka Simboli cko ra cunanje Zna

UvodMatrice

Skripte i funkcijeGrafika

Funkcija PlotMijenjanje elemenata grafaRad sa grafikom

Handle grafike

Prilikom kreiranja grafike u MATLABU, pridjeljuje mu se handle,identifikator te grafike. Koristeci taj handle, moze se pristupiti tojgrafici i njenim svojstvima.

Primjer

x = 0 : pi/100 : 2*pi;

y = sin(x);

a = plot(x, y)

set(a, ’Color’, ’red’)

b = plot(x, y, ’Color’, ’cyan’)

c = get(a, ’Color’)

d = get(b, ’Color’)

get(a, ’LineWidth’)

get(a)

MATLAB