You are on page 1of 12

DODATAK A UVOD U MATLAB OKRUENJE

Za programsko-razvojno okruenje u ovom udbeniku izabrali smo Matlab


programski paket. Matlab je nastao kao skraenica za MATrix LABaratory"
(laboratorija za matrice"). Izumeo ga je 1970-ih Kliv Moler (Cleve Moler), ef
katedre za informatiku na Univerzitetu Novi Meksiko". Omoguava brz razvoj
aplikacija (engl. RAD-rapid application development) u cilju brzog generisanja
eksperimentalnih rezultata.
Matlab je RAD okruenje i obezbeuje odlino radno okruenje sa alatima za
obradu podataka, vizualizaciju podataka i standardizovane algoritme koji se primenjuju u svim visoko-tehnolokim poljima. Pored mnogobrojnih algoritama
nudi programiranje na visokom nivou. Svi primeri u ovom udbeniku razvijeni su
upravo u ovom softveru.
Slede osnovni programski kodovi koji se odnose na elementarno programiranje u
Matlab-u.
Deklarisanje vektora:
Generisanje niza

u jednom redu:
>> x = [1 3 5 7 9 11]

Bri nain za generisanje niza

iste veliine:
>> x = 1:2:11

x=
Transponovanje niza

9 11

u jednu kolonu:
>> y = x'
y=
1
3

Osnovi teorije informacija i kodovanja

200

5
7
9
11
Generisanje niza

u opsegu vrednosti od 5 do 30 sa korakom 5.


>> Z = 5:5:30
z=

5 10 15 20 25 30

Niz je generisan i nije prikazan u command window. Moemo saznati vrednost


treeg elementa ili proslediti vrednost treeg elementa tako to emo uneti naredbu:
>> z(3)
ans = 15
Na ovaj nain dobili smo novu promenljivu ans koja je automatski deklarisana.
Vrednost u Matlab-u kojoj unapred nije odreen naziv, automatski dobija naziv
ans.
Naredba za pregled svih promenljivih koje su deklarisane u jednoj instanci Matlab-a:
>> who
Your variables are:
ans x y z
Naredba za uvid u detalje neke promenljive, npr. matrica podataka:
>> whos
Name

Size

Osnovi teorije informacija i kodovanja

Bytes Class

Attributes

201

ans

1x1

8 double

1x6

48 double

6x1

48 double

1x6

48 double

Ili ako elimo da saznamo dimenziju matrice, unosimo sledeu naredbu:


>> [m,n]=size(x)
m= 1
n = 6
ili
>> size(x)
ans = 6

Ukoliko elimo trajno da sauvamo vrednosti svih promenljivih iz jedne instance


Matlab-a, unosimo sledeu naredbu:
>> save nazivFajla
, ako elimo uvati vrednosti samo odreenih promenljivih:
>> save nazivFajla x
, ako elimo izbrisati sve promenljive koristiemo naredbu:
>> clear all
, ako elimo koristiti promenljive koje smo sauvali u datoteku, koristimo naredbu:
>> load nazivFajla

Osnovi teorije informacija i kodovanja

202

Deklarisanje i inicijalizovanje matrica:


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

2 13

5 10 11
9

7 12

4 15 14

Izraunavanje sume po kolonama matrice A:


>> sum(A)
ans = 34 34 34 34
Transponovanje matrice A:
>> A'
ans =
16

3 10

6 15

2 11

7 14

13

8 12

Prikaz i izraunavanje sume dijagonalnih elemenata:


>> diag(A)
ans =

16
10

Osnovi teorije informacija i kodovanja

203

7
1
>> sum(diag(A))
ans = 34
Prikaz vrednosti elementa sa traene pozicije:
>> A(2,4)
ans = 8
Brzo generisanje matrice:
>> Z = zeros(2,3)
Z= 0

>> F = 5*ones(2,3)
F= 5

>>N = 10*rand(1,8)

N = 6.5574 0.3571 8.4913 9.3399 6.7874 7.5774 7.4313 3.9223


Rad sa M fajlovima. Prvo kreiramo fajl Matrica.m. Uneemo sledeu deklaraciju
matrice A i sadraj sauvati u fajlu:
A = [16.0 3.0 2.0 13.0
5.0 10.0 11.0 8.0
9.0 6.0 7.0 12.0
Osnovi teorije informacija i kodovanja

204

4.0 15.0 14.0 1.0];


Sada, ako elimo da uitamo promenljivu A iz fajla M, uneemo sledeu komandu:
>>Matrica
Zatim unesemo naziv promenljive A:
>> A
A=

16

2 13

5 10 11
9

7 12

4 15 14

Konkatenacija matrica je proces vezivanja ili spajanja dve manje matrice u jednu
veu. Primer za matricu A:
>> B = [A A+32;A+48 A+16]
B = 16

2 13 48 35 34 45

5 10 11
9

8 37 42 43 40

7 12 41 38 39 44

4 15 14

1 36 47 46 33

64 51 50 61 32 19 18 29
53 58 59 56 21 26 27 24
57 54 55 60 25 22 23 28
52 63 62 49 20 31 30 17
Primena logaritamske funkcije nad nizom vrednosti
>> X = (1:2:16)';
Osnovi teorije informacija i kodovanja

205

>> X
X= 1
3
5
7
9
11
13
15
>> Log = log2(X)
Log =

0
1.5850
2.3219
2.8074
3.1699
3.4594
3.7004
3.9069

Sledi uvoenje podataka iz Excel datoteke. Napraviti excel datoteku podaci.xlsx. U


datoteci definisati proizvoljnu matricu [4 x 4]. Promeniti naziv Sheet1 u naziv
Matrica. Unoenjem naredbe xlsfinfo(nazivDatoteke) dobijamo detaljan uvid u
excel datoteku.
>> [type, sheets]=xlsfinfo('podaci.xlsx');
Osnovi teorije informacija i kodovanja

206

>> type
type = Microsoft Excel Spreadsheet
>> sheets
sheets = 'Matrica' 'Sheet2' 'Sheet3'
Ako elimo da uvezemo podatke sa lista Matrica, unosimo naredbu:
>> A = xlsread('podaci.xlsx','matrica');
>> A
A=

Zatim primenimo proces konkatenacije nad matricom A i upiemo podatke u


excel datoteku.
>> B = [A A+12;A+5 A+8];
>> B
B=

4 13 14 15 16

5 14 15 16 17

6 15 16 17 18

7 16 17 18 19

Osnovi teorije informacija i kodovanja

9 10 11 12

9 10 10 11 12 13
207

9 10 11 11 12 13 14

9 10 11 12 12 13 14 15

>> xlswrite('Podaci.xlsx',B,'MatricaCon');

Generisanje Hafmanovog renika i Hafmanovih kodova. Napraviemo excel datoteku sa sledeim sadrajem:

Osnovi teorije informacija i kodovanja

208

Unosimo sledee naredbe za uvoz podataka u Matlab okruenje:


>> X = xlsread('Izvor.xlsx','Poruke');
>> p = xlsread('Izvor.xlsx','Verovatnoce');

>> X
X=

>> p
p = 0.5000 0.3500 0.1200 0.0300
Uneti sledee naredbe za pravljenje Hafmanovog renika:
>> R = huffmandict(X,p);

Osnovi teorije informacija i kodovanja

209

>> R
R=

[1] [

[2] [1x2 double]


[3] [1x3 double]
[4] [1x3 double]

Sledi Hafmanovo kodovanje.


Sledeom komandom generiemo 50 istih blokova poruke.
>> poruke = repmat([3 3 1 3 3 3 3 3 2 3],1,50);
Konani skup simbola u poruci:
>>simboli = [1 2 3];
Nasumino odreene verovatnoe za 3 simbola:
>>verovatnoce = [0.1 0.1 0.8];
Renik za Hafmanov kod:
Osnovi teorije informacija i kodovanja

210

>>recnik = huffmandict(simboli,verovatnoce);
Generisanje kodne sekvence preko Hafmanovog kodera:
>>kodnaSekvenca = huffmanenco(poruke,recnik);
Generisanje dekodovane sekvence preko Hafmanovog dekodera:
>>dekodovanaSekvenca = huffmandeco(kodnaSekvenca,recnik);

Osnovi teorije informacija i kodovanja

211

You might also like