You are on page 1of 23

J

Manipulimi Numerik i Matricave dhe


Vektorve n MATLAB
yll@prip.tuwien.ac.at

Pattern Recognition and Image Processing Group 183/2


Institute for Computer Aided Automation
Vienna University of Technology

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

MATLAB
Prdorimi
dhnja interaktive e urdhrave,
skript programe (batch file),
funksionet (variablat lokale, parametrat, dhe vlerat kthyese t funksioneve).

J
I

Po thuajse do gj representohet prmes matricave dhe vektorve,


Stil kompakt i programimit,
zhvillim i shkurt i programeve,
urdhra t fuqishm (manipulim i shum t dhnave me nj urdhr),
NUK ka deklarim t variablave.

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

2/23

Skript Programe
Skript programe = MATLAB batch skedar.

J
I

N skript programe mund t prdoren t gjith urdhrat t cilt i ofron MATLAB-i,


Skript programet jane ASCII skedar (*.m ), p.sh. emri i programit.m ,
Thirrja n Matlab: MATLAB>> emri i programit (pa .m n fund),
Komentimi i kodit me %
Pas do urdhri nj pik presje opcionale,
pa kt pik presje rezultati paraqitet n ekran, q n raste t matricave t
mdha mund zgjas.

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

3/23

Skript Programet vazhd.


Shembull: skedari test1.m :
%
%
x
y
%
a

J
I

Koment
vendosja e variablave
= 3 ;
= 2 ;
pa ; shfaqet dalja ne ekran
= x + y

dhe thirrja n MATLAB:


MATLAB>> test1
a = 5

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

4/23

Funksionet
Rreshti i par n skedar
function [outPara1, outPara2, ...]
inPara2, ... )

= myFunc( inPara1,

J
I

Ruhet si myFunc.m p.sh.


function [dalja] = myFunc( hyrja )
% komente mbi parametrat hyres, dales
% keto rreshta do te paraqiten ne ekran
% nese thirret
% help myFunc
<-------- se paku nje rresht i zbrazet
% komente tjera mbi programin
dalja = hyrja - hyrja ;

dhe thirrja n MATLAB:


MATLAB>> a =
a = 0

myFunc(5)

Po thuajse t gjitha funksionet pranojn si skalart po ashtu edhe vektort si


parametra hyrs.
ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e
Manipulimi Numerik i Matricave dhe Vektoreve

5/23

Maticat - Inicializimi
Krijimi i matrics,

MATLAB>> A = [1 3 5 7; 2 4 6 8 ]

A=

7
8

J
I

Elementet shkruhen n form rreshti n kllapa t mesme ([ ]), me pik presje t


ndara.
Matrica zero gj. njsi,

MATLAB>> B = ones( 2, 4 ) ;

B=

1
1

1
1

1
1

1
1

MATLAB>> B = ones( 1, 3 ) ;
C = (0 0 0)
Parametrat pr nj matric multi dimensionale: ( rreshtat, kolonat ).

Seria: prej:hapi:deri gj. prej:deri


MATLAB>> D = 1:5
MATLAB>> E = 5:-0.5:4

D = (1 2 3 4 5)
E = (5 4.5 4)

Krijimi i matrics diagonale,

MATLAB>> F = diag( 1:3 )

F =
0
0

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

6/23

Maticat - Qasja n Elemente


Qasja n nj element t vetm: A(rreshti, kolona) = vlera.

J
I

MATLAB>> A = zeros( 2, 4)
MATLAB>> A(2,3) = 5

A=

Indeksat fillojn me 1
Nse kufinjt e indekseve tejkalohen, matricat prshtatet automatikisht.

0 0 0 0

MATLAB>> A(3,1) = 2
A=
0 0 5 0
2 0 0 0
Qasja n nj pjes t matrics.

MATLAB>> A ( 1:2, 1:2) = ones(2,2)

A=
1
2

Mbushja e pjesve t matrics m nj skalar.

MATLAB>> A( 1:end, [2,4] = 9

A=
1
2

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

7/23

Vektort - Matric 1D
J
I

Vektort = Matric 1D.


Vektori rresht = vektori kolon.
Vektortet/matricat transponohen: A.
vektori_kolone = vektorin_rresht0
MATLAB>> A = 1:3

MATLAB>> B = A

A = (1 2 3), B =
2

Qasja n nj element: A(indeksi) = vlera


MATLAB>> C = 1:5
MATLAB>> C(3) = 100

A = (1 2 100 4 5)

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

8/23

Programimi
while loop ,

J
I

while kushti
.....
end

nj shembull
a = 0 ;
while (a < 10 )
a = a + 1 ;
end
if-else bloqet,
if kushti
.....
else kushti
....
else
....
end- Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtine
ne MATLAB
Manipulimi Numerik i Matricave dhe Vektoreve

9/23

Programimi, vazhd.
J
I

for loop ,
for variabla = vektor_rresht
.....
end

nj shembull
for x = 1:10
x
end

operatort pr krahasim:
<,>,
<= , >=
== - i barabart = - jo i barabart.

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

10/23

Vektorizimi - Optimizimi i Programit


J
I

for ciklet egzekutohen jo me efiienc for ciklet t mos prdoren ns sht

e mundur.
N vend q pr secilin element veq e veq t kryhet nj operacion, operacioni
kryhet njher n tr vektorin, p.sh.
x = 1:10 ;
y = sqrt(x) ;

n vend t
for x = 1:10 ;
y = sqrt(x) ;
end

Krahasimi me operator pr krahasime bhet element pr element,


Shumzimi (*), pjestimi (/ ) dhe fuqizimi () vendoset nj pik (.) para operatorit
p.sh. A = ( 1:4 ).2 A = (1 4 9 16).

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

11/23

Vizualizimi
2D Plots, 3D Plots, Imazhet ...
2D Plots

3D Plots

Imazhet

J
I

N=100 pike

N=45 pike

0.8
0.6

1
0.8

0.4

0.6

0.2

0.4

0.2
0

0.2

0.2

0.4

0.4
10

0.6

10

0.8

5
10

10

Paraqitja e m shum imazheve n nj dritare


N=8 pike

sin(x2)

N=15 pike

0.8

0.8

0.6

0.6

1
0.8

0.4

0.4

0.6

0.2

0.2

0.4

0.2
0

0.2

0.2

0.2

0.4

0.4

0.4
10

0.6

0.6
10

0.8

5
10

0.8

10

N=100 pike

N=45 pike

0.8

cos(x2)

0.8

0.6

0.6

1
0.8

0.4

0.4

0.6

0.2

0.2

0.4

0.2
0

0.2

0.2

0.2

0.4

0.4

0.4
10

0.6

0.6
10

0.8

5
10

10

0.8
1

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

12/23

Vizualizimi - 2D Plots
J
I

plot(x,y) : Vizatimi i iftit (xi , yi )


MATLAB>>
MATLAB>>
MATLAB>>
MATLAB>>

t = 0:0.1:2*pi ;
y = sin( t ) ;
plot(x,y)
title(N=100 pike)

N=100 pike

1
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

13/23

Vizualizimi - 2D Plots vazhd.


Ngjyra dhe stili i vijs : plot( x, y, format) ;
shiqo help plot.

J
I

Titullimi i boshteve: xlabel(...) dhe ylabel(...)


Titulli i vizatimit: title(...)
Ndyshimi i intervalit t vizatimit:
axis([xmax, xmin])
gj.
axis([xmax, xmin, ymin, ymax]).

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

14/23

Vizualizimi - 3D Plots
mesh(x,y,z) : Vizatimi i iftit (xi , yi , zi )
MATLAB>>
MATLAB>>
MATLAB>>
MATLAB>>

J
I

x = ... ;
y = ... ;
z=f(x,y) ;
mesh( x, y, z )

Fqinjsia n vet matricat rezulton n rrjetn e vizatimit.


Shembull:
MATLAB>> x =linspace( -10, 10, 45) ; x = (10, ..., 10), ka 40
elemente, analog y.

10 ... 10

MATLAB>> [x, y] = meshgrid( x, y ) ; x = .


.
.

10 ... 10
y sht i njjt.

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

15/23

Vizualizimi - 3D Plots vazhd.


J
I

MATLAB>> r = sqrt( x.2 + y.2 )+ 0.1 ;


MATLAB>> z = sin(r)./r ; %sinc function
MATLAB>> mesh( x, y, z )
N=45 pike

1
0.8
0.6
0.4
0.2
0
0.2
0.4
10
10

5
5

5
10

10

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

16/23

Vizualizimi - Imazhet
imshow( I, [] ): paraqet matricn I si nj imazh, ku vlera m e vogel n
matrice i konsiderohet ngjyrs s zez, dhe m e madhja t bardhs.

J
I

Imazhin e lexojm me im = imread( imazhi.tif) ;


pasiq imread jep si rezultat nj unit8 matric, duhet t bhet nj transformim
me im = double( im ) ;

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

17/23

Vizualizimi - Imazhet vazhd.


J
I

Shembull:
MATLAB>> a = double( imread( lena.tif ) ) ;
a) MATLAB>> imshow( a, [] ) ;
b) MATLAB>> imshow( a( 117:146, 100:194 ), [] )

a)

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

b)

18/23

Paraqitja e m Shume Imazheve - Shtresimi


figure<n>: zgjedh dritaren <n> si dritare pr paraqitur vizatimin (ns kjo
dritare nuk egziton do t krijohet nj dritare e re).

J
I

figure: hap nj dritare t re.


hold on: pas ktij urdhri n dritaren aktuale do t shtresohen vizatimet.
hold off: urdhri i ri pr vizatim do t rivizatoj dritaren (sht default)

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

19/23

Shtresimi vazhd.
J
I

Shembull:
MATLAB>>
MATLAB>>
MATLAB>>
MATLAB>>
MATLAB>>
MATLAB>>

x = linespace( 0, 2*pi, 100 )


y1 = sin( x ) ;
y2 = cos( x ) ;
plot( x, y1, k- ) ;
hold on
plot( x, y2, k. ) ;

sin dhe cos

1
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

20/23

Paraqitja e m Shum Imazheve - Subplots


subplot( x, y, index ): ndan dritaren n y x pjes (nn dritare).

J
I

Me index selektohet nn dritarja ku dshirojme t vizatojm.


index-i lviz resht pr rresht.

n+1

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

21/23

Shtresimi vazhd.
MATLAB>>
MATLAB>>
MATLAB>>
MATLAB>>
MATLAB>>
MATLAB>>
MATLAB>>
MATLAB>>
MATLAB>>
MATLAB>>
MATLAB>>
MATLAB>>

subplot( 4, 1, 1 )
plot( x1, y1 )
title(...)
.....
subplot( 4, 1, 2 )
plot( x1, y2 )
title(...)
.....
.....
subplot( 4, 1, 4 )
plot( x4, y4)
title(...)

N=8 pike

J
I

N=100 pike

N=15 pike

0.8

N=45 pike

0.8

0.6

0.6

1
0.8

0.4

0.6

0.2

1
0.8

0.4

0.6

0.2

0.4

0.4

0.2
0

0.2

0.2

0.4

0.4
10

0.6
10

0.8

0
0.2

0.4

0.4
10

0.6

0.2

0.2

5
10

10

10

0.8

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

5
10

10

22/23

M Shum Informata?
J
I

http://www.prip.tuwien.ac.at/yll/BPI/docs.html
http://www.mathworks.com/

ne MATLAB - Ushtrime nga Bazat e Imazh Procesimit, SD 2003, Prishtin e


Manipulimi Numerik i Matricave dhe Vektoreve

23/23

You might also like