You are on page 1of 8

FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I

INFORMACIJSKIH TEHNOLOGIJA
Zavod za komunikacije
Teorija informacije
Laboratorijska vježba broj 1

Ime i prezime studenta: Broj indeksa: Datum: Pregledao:


Deni Kolačko

Matlab – uputstva
MATLAB je softverski paket za:
- rješavanje matematičkih problema,
- analizu podataka i
- vizualizaciju.

Osnovna svojstva i mogućnosti:


- matrično orijentiran alat
- automatsko alociranje memorije prilikom kreiranja varijabli
- podržava standardne operatore kao +, - , * , / ,\ , ^, ‘, ( )
- podržava rad s funkcijama (veliki broj ugrađenih funkcija)
- grafika - prikaz 2D i 3D grafova, kontrola osi, ispisivanje komentara, naslova,...
- podržava klasične DOS i UNIX naredbe (cd, delete, dir, pwd,…)

Rad s matricama
- matrica A se može napraviti na slijedeći način:

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

- matrica A se zove Dürer-ova matrica, a možemo je ispisati

A 1 3 2 1
= 6 3
5 1 1 8
0 1
9 6 7 1
2
4 1 1 1
5 4

- suma matrice može se izračunati naredbom sum()

sum(A)

ans =
34 34 34 34

- varijabla ans je skraćeno od answer


- suma prvog stupca je:
Teorija informacije, Laboratorijska vježba br.1 1
sum(A(:,1))

ans =

- naredba sum() daje sumu po stupcima, a ako tražimo sume redaka onda je
potrebno tražiti sumu transponirane matrice te rezultat također transponirati kako bi
se dobio odgovarajući ispis:
sum(A')'

ans =
3
4
34
34
34

- suma svih elemenata matrice se dobiva:

sum(sum(A))

ans =

136

- suma elemenata na glavnoj dijagonali:

diag(A)

daje
ans =

16
10
7
1

sum(diag(A))

ans = 34

- za sumu druge dijagonale primijenit ćemo funkciju za okretanje matrice s lijeva


na desno

sum(diag(fliplr(A))

) ans = 34

- pojedinim elementima u matrici se može pristupiti preko indeksa.


- suma elemenata u četvrtom stupcu:

A(1,4) + A(2,4) + A(3,4) + A(4,4)

Teorija informacije, Laboratorijska vježba br.1 2


ans = 34

- moguće je i indeksiranje kao da se radi o jednom vektoru sastavljenom od


stupaca matrice, primjerice:

A(8) je isto što i A(4,2) što je broj 15

- pokušaj dohvata elementa izvan matrice generira pogrešku:

A(4,5)

??? Index exceeds matrix dimensions.

- spremanje elementa s indeksima izvan matrice proširuje matricu:

X=A

X 1 3 2 1
= 6 3
5 1 1 8
0 1
9 6 7 1
2
4 1 1 1
5 4

X(4,5)= 17

X 1 3 2 1 0
= 6 3
5 1 1 8 0
0 1
9 6 7 1 0
2
4 1 1 1 1
5 4 7

Rad s funkcijama
- Matlab posjeduje velik broj ugrađenih funkcija
- popis funkcija možemo dobiti na slijedeći način:

help elfun osnovne


help specfun specijalne
help elmat osnovne za rad s matricama

- opis neke funkcije možemo dobiti upisivanjem naredbe help ime_funkcije:

help
rand
help exp

- realmin i realmax su najmanji i najveći podržani broj, pi je broj pi, Inf


označava beskonačno a NaN da rezultat nije broj (help inf, help NaN)
Teorija informacije, Laboratorijska vježba br.1 3
realmin

ans =

2.2251e-308

realmax

ans =

1.7977e+30

- neke od funkcija za rad s matricama su:

zeros sve nule


ones sve jedinice
rand slučajna uniforma distribucija
randn slučajna normalna distribucija

- Kontrola toka programa - podržava if, switch, case, for petlju, while petlju,
break...

- m–datoteke – tekstualne datoteke, mogu sadržavati bilo koju naredbu ili


funkciju. Omogućavaju pisanje programa u Matlab-u.
- primjer funkcije u m-datoteci

type rank

function r = rank(A,tol)
%RANK Matrix rank.
% RANK(A) provides an estimate of the number of linearly
% independent rows or columns of a matrix A.
% RANK(A,tol) is the number of singular values of A
% that are larger than tol.
% RANK(A) uses the default tol = max(size(A)) * norm(A) * eps.

% Copyright 1984-2000 The MathWorks, Inc.


% $Revision: 5.9 $ $Date: 2000/06/01 02:04:15 $

s = svd(A);
if
nargin==1
tol = max(size(A)') * max(s) *
eps; end
r = sum(s > tol);

Rad s grafikom
- osnovna funkcija je plot

t =
Teorija informacije, Laboratorijska vježba br.1 4
0:pi/100:2*pi; y
= sin(t);
plot(t,y)

- gornji primjer iscrtava funkciju sinus, a

y2 = sin(t-.25);
y3 = sin(t-.5);
plot(t,y,t,y2,t,y3)

- iscrtava tri funkcije sinus u različitim bojama, pomaknutim u fazi za 0.25.


- ako želimo na mjestu točaka koje iscrtavamo staviti neki drugi znak (npr.: +, *,
x,...) to možemo učiniti na slijedeći naćin:

plot(t, y, 'r:+')

- prozor u kojem se iscrtava može se pozvati naredbom:


figure(n)

- u kojoj n označava redni broj slike.


- naredbom get(n) možemo dobiti razne parametre slike.
- ako nakon iscrtavanja nekog grafa ponovno pozovemo naredbu plot() u prozoru se
ispisuje novi sadržaj. Ukoliko želimo zadržati i stari to možemo učiniti naredbom
hold

hold on

- hold nam omogućava docrtavanje na graf što možemo vidjeti izvršavajući


slijedeći kôd naredbu po naredbu.

[x,y,z] = peaks;
contour(x,y,z,20,'k'
) hold on
pcolor(x,y,z)
shading interp

- naredba subplot() omogućava iscrtavanje više grafova u istom prozoru, tako da


se prozor podijeli na više područja

t = 0:pi/10:2*pi;
[X,Y,Z] =
cylinder(4*cos(t));
subplot(2,2,1)
mesh(X)
subplot(2,2,2)
; mesh(Y)
subplot(2,2,3)
; mesh(Z)
subplot(2,2,4)
;
mesh(X,Y,Z)

- ako su argumenti za plot kompleksni brojevi imaginarni dio se zanemaruje osim


ako je u pitanju samo jedan argument (varijabla)

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

Teorija informacije, Laboratorijska vježba br.1 5


plot(exp(i*t),'-
o')

- moguć je i prikaz 3D grafova, kontrola osi, ispisivanje komentara, naslova itd.


- za dobivanje pomoći se koristimo naredbama help i lookfor.

help
graphics
help plot

ZADATAK (za zadaću):


Nacrtati pomoću MAtLaba grafove funkcija:
1. sin(x),
2. sinc(x)
3. sh(x)
u intervalu od 0 do 4 π ako je primjenjivo.
U zaključku ispisati programe za svaku funkciju i priložiti grafove
funkcija.

Teorija informacije, Laboratorijska vježba br.1 6


ZAKLJUČAK:

f(x) = sin(x)
>> t = [-2*pi:0.01:2*pi];
>> x = sin(t);
>> plot(t,x);
>> xlabel('Vrijeme[s]');
>> ylabel('Amplituda');
>> title('Graf funkcije f(x)=sin(x) / Deni Kolačko')

f(x) = sinc(x)
>> t = [-2*pi:0.01:2*pi];
>> x = sinc(t);
>> plot(t,x);
>> xlabel('Vrijeme[s]');
>> ylabel('Amplituda');
>> title('Graf funkcije f(x)=sinc(x) / Deni Kolačko')

f(x) = sh(x)
>> t = [-2*pi:0.01:2*pi];
>> x = sinh(t);
>> plot(t,x);
>> xlabel('Vrijeme[s]');
>> ylabel('Amplituda');
>> title('Graf funkcije f(x)=sinh(x) / Deni Kolačko')

Teorija informacije, Laboratorijska vježba br.1 7


Teorija informacije, Laboratorijska vježba br.1 8

You might also like