You are on page 1of 24

Generisae nizova

Niz (engl. array) osnovni je oblik u kojem MATLAB uva podatke i radi s ima. Niz je skup brojeva poreanih u vrste (redove) i/ili kolone. Najjednostavniji (jednodimenzionalni) niz jeste vrsta ili kolona brojeva. Sloeniji (dvodimenzionalni) niz je skup brojeva poreanih u vrste i kolone. U nizovima se podaci uvaju kao u tabeli. U prirodnim i tehnikim naukama, jednodimenzionalni nizovi esto predstavaju vektore, a dvodimenzionalni matrice. U poglavu 2 saznaete kako da formirate i adresirate nizove, a u poglavu 3 kako da ih upotrebite u matematikim operacijama. Sem brojeva, u MATLAB-u nizovi mogu sadrati i znakove, pa takve zovemo znakovni nizovi (engl. strings). O znakovnim nizovima bie rei u odeku 2.10.

2.1 GENERISAE JEDNODIMENZIONALNOG NIZA (VEKTORA) Jednodimenzionalni niz je skup brojeva poreanih u vrstu ili kolonu. Primer takvog niza su koordinate take u trodimenzionalnom Dekartovom (pravouglom) koordinatnom sistemu. Kao to vidite na slici 2-1, poloaj take A je denisan ureenom trojkom 2, 4 i 5, to su koordinate te take. Poloaj take A moemo opisati putem vektora poloaja:
rA = 2i + 4j + 5k gde su i, j i k jedinini vektori u smeru osa x, y i z. Brojevi 2, 4 i 5 deniu vektor vrstu ili vektor kolonu. Svaki skup brojeva moe posluiti za denisae vektora. Na primer, u tabeli 2-1 navedeni su podaci o rastu stanovnitva pomou kojih moemo napraviti dva skupa brojeva za godine i za broj stanovnika. Podatke u svaki skup unosimo kao elemente vektora poreane u vrstu ili kolonu.

Slika 2-1: Poloaj take.

25

26

Poglave 2: Generisae nizova

Tabela 2-1: Podaci o stanovnitvu

Godina Stanovnitvo (u milionima)

1984
127

1986
130

1988
136

1990
145

1992
158

1994
178

1996
211

U MATLAB-u se vektor generie dodeivaem elemenata vektora promenivoj. To se moe uraditi na vie naina, zavisno od izvora podataka koji se koriste za elemente vektora. Kada vektor sadri poznate brojeve (kao to su koordinate take A), vrednost svakog elementa se unosi direktno. Svaki element moe biti matematiki izraz koji sadri unapred denisane promenive, brojeve i funkcije. esto su elementi vektora vrste niz brojeva s konstantnim korakom. U takvim sluajevima, vektor se moe napraviti MATLAB-ovom komandom. Vektor se moe dobiti i kao rezultat matematikih operacija, to je objaeno u poglavu 3. Generisae vektora s konstantnim korakom izmeu elemenata: Vektor se generie upisivaem elemenata (brojeva) unutar uglastih zagrada [].
ime_promenljive = [upiite elemente vektora]

Vektor vrsta: Da biste napravili vektor vrstu, upiite egove elemente, razdvojene razmakom ili zarezom, unutar uglastih zagrada. Vektor kolona: Da biste napravili vektor kolonu, upiite levu uglastu zagradu [ i zatim elemente razdvojene takom i zarezom, ili pritisnite Enter posle svakog elementa. Nakon posledeg elementa, upiite desnu uglastu zagradu ]. Veba 2-1 pokazuje kako su pomou podataka iz tabele 2-1 i koordinata take A napraveni vektor vrsta i vektor kolona.
Veba 2-1: Generisae vektora od datih podataka

>>god=[1984 1986 1988 1990 1992 1992 1994 1996] Skup godina dodeen vektoru vrsti god. god= 1984 1986 1988 1990 >>stan=[127; 130; 136; 145; 158; 178; 211] stan= 127 130 136 145 158 178 211 1992 1994 1996

Broj stanovnika dodeen vektoru koloni stan.

2.1 Generisae jednodimenzionalnog niza (vektora)

27

Veba 2-1: Generisae vektora od datih podataka (nastavak)

>>pntAH=[2, 4, 5] pntAH= 2 4 5 >>pntAV=[2 4 5] pntAV= 2 4 5 >>

Koordinate take A dodeene vektoru vrsti pntAH. Koordinate take A dodeene vektoru koloni pntAV. (Posle svakog elementa pritisnut je Enter.)

Generisae vektora s konstantnim korakom izmeu elemenata zadavaem prvog elementa, koraka i posledeg elementa: Vektor s konstantnim korakom izmeu elemenata sadri elemente ija je razlika konstantna. Na primer, u vektoru v = 2 4 6 8 10, korak izmeu elemenata je 2. Da biste napravili vektor iji je prvi element m, korak q, a posledi element n, upiite:
ime_promenive = [m:q:n] ili ime_promenive = m:q:n

(Zagrade su opcione.) Evo primera: >>x=[1:2:13] x= 1 3 5 7 >>y=[1.5:0.1:2.1] y= 1.5000 >>z=[-3:7] z= -3 -2 -1 >>xa=[21:-3:6] xa= 21 >> 18 15 0 1 2 3 4 5 6 7 Prvi element 21, korak 3, posledi element 6. 12 9 6 1.6000 1.7000 1.8000 1.9000 2.0000 2.1000 Prvi element 3, posledi element 7. Ako izostavimo korak, podrazumeva se 1. 9 11 13 Prvi element 1.5, korak 0.1, posledi element 2.1. Prvi element 1, korak 2, posledi element 13.

28

Poglave 2: Generisae nizova

Ako su brojevi m, q i n takvi da se n ne moe dobiti kao zbir q i m, onda e (za pozitivan n) posledi element vektora biti posledi broj koji ne premauje n. Generisae vektora s konstantnim korakom izmeu elemenata zadavaem prvog i posledeg elementa, i broja elemenata: Da biste napravili vektor iji je prvi element xi, posledi xf, a broj elemenata n, upiite komandu linspace (MATLAB e izraunati odgovarajui korak):
ime_promenive = linspace (xi, xf, n)

Primeri: >>va=linspace(0,8,6) va= 0 1.6000 3.2000 4.8000 >>vb=linspace(30,10,11) vb= 30 28 26 24 22 >>u=linspace(49.5,0.5) 20 6 elemenata, prvi element 0, posledi 8. 6.4000 8.000

11 elemenata, prvi element 30, posledi 10. 18 16 14 12 10

Prvi element 49.5, posledi 0.5.

Kada se izostavi broj elemenata, u= podrazumeva se 100. Columns 1 through 10 49.5000 49.0051 48.5101 48.0152 47.5202 47.0253 46.5303 46.0354 45.5404 45.0455 Prikazuje se 100 elemenata. ........... Columns 91 through 100 4.9545 4.4596 3.9646 3.4697 2.9747 2.4798 1.9848 1.4899 0.9949 0.5000 >>

2.2 GENERISAE DVODIMENZIONALNOG NIZA (MATRICE) Dvodimenzionalan niz (matrica) sadri brojeve poreane u vrste i kolone. Matrice se mogu upotrebiti za skladitee podataka kao u tabeli. Matrice igraju vanu ulogu u linearnoj algebri, a u prirodnim i tehnikim naukama koriste se za opisivae mnogih zikih veliina. Kvadratna matrica ima jednak broj vrsta i kolona. Na primer, matrica:
749 381 653

matrica 3 3

2.2 Generisae dvodimenzionalnog niza (matrice)

29

jeste kvadratna, s tri vrste i tri kolone. Broj vrsta moe biti razliit od broja kolona. Na primer, matrica:
31 3 28 14 26 51 6 58 14 20 15 6 18 11 61 36 5 43 34 93 30 65 matrica 4 6 22 7

ima etiri vrste i est kolona. Matrica m n ima m vrsta i n kolona, pa kaemo da je veliina matrice m puta n. Matrica se denie dodeivaem elemenata matrice promenivoj. Elemente (brojeve) matrice upisujete, vrstu po vrstu, unutar uglastih zagrada []. Prvo upiite levu zagradu [, zatim elemente prve vrste razdvojene razmacima ili zarezima. Da biste preli u sledeu vrstu, upiite taku i zarez, ili pritisnite Enter. Na kraju poslede vrste upiite desnu zagradu ]. ime_promenive = [elementi prve vrste; elementi druge vrste; elementi tree vrste; ; elementi poslede vrste] Elementi matrice mogu biti brojevi ili matematiki izrazi koji sadre brojeve, unapred denisane promenive i funkcije. Sve vrste moraju imati jednak broj elemenata. Ako je element nula, morate upisati 0. Ukoliko upiete nepotpunu matricu, MATLAB e prikazati poruku o greci. U vebi 2-2 dati su primeri razliito denisanih matrica.
Veba 2-2: Izrada matrica

>>a=[5 35 43; 4 76 81; 21 32 40] a=


5 35 43

>>b=[7 2 76 33 8] 1 98 6 25 6 5 54 68 9 0] b=

>>cd=6; e=3; h=4; >>Mat=[e, cd*h, cos(pi/3); h^2, sqrt(h*h/cd), 14]

2.3 Napomene o promenivama u MATLAB-u

31

>>idn=eye(5) idn= 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 >>

0 0 0 1 0

0 0 0 0 1

Matrice se mogu dobiti i kao rezultat matematikih operacija s vektorima i matricama. O tome govori poglave 3.

2.3 NAPOMENE O PROMENIVAMA U MATLAB-U Sve promenive u MATLAB-u su nizovi. Skalar je niz s jednim elementom, vektor je niz s jednom vrstom ili jednom kolonom elemenata, a matrica je niz sa elementima u vrstama i kolonama. Promeniva (skalar, vektor ili matrica) denisana je kada joj se dodele upisani elementi. Veliinu niza nije potrebno unapred denisati (jedan element za skalar, jedna vrsta ili kolona elemenata za vektor, dvodimenzionalni niz elemenata za matricu). Postojea promeniva (skalar, vektor ili matrica) moe meati veliinu i tip. Na primer, skalar moete pretvoriti u vektor ili matricu, vektor moete pretvoriti u skalar, u vektor razliite duine ili u matricu, a matrici moete promeniti veliinu ili je svesti na vektor ili skalar. Te promene obavate dodavaem i brisaem elemenata. O tome govore odeci 2.7 i 2.8. 2.4 OPERATOR TRANSPONOVAA Kada se primeni na vektor, operator transponovaa pretvara vektor vrstu u vektor kolonu i obratno. Kada se primeni na matricu, pretvara ene vrste u kolone i obratno. Operator transponovaa primeujete upisivaem polunavodnika (') iza promenive koju treba transponovati. Primeri:
>>aa=[3 8 1] aa= 3 8 1 >>bb=aa' bb= 3 8 1 Deniemo vektor vrstu aa.

Deniemo vektor vrstu bb kao transponovan vektor aa.

32

Poglave 2: Generisae nizova

>>C=[2 55 14 8; 21 5 32 11; 41 64 9 1] C=
2 55 14 8 21 5 32 11 41 64 9 1

Deniemo matricu C sa 3 vrste i 4 kolone.

>>D=C' D=
2 55 14 8 21 5 32 11 41 64 9 1

Deniemo matricu D kao transponovanu matricu C. (D ima 4 vrste i 3 kolone.)

>>

2.5 ADRESIRAE NIZOVA Elementi niza (vektora ili matrice) mogu se adresirati pojedinano ili u podgrupama. To je zgodno kada treba redenisati samo pojedine elemente, upotrebiti odreene elemente u proraunu ili denisati novu promenivu pomou podgrupe elemenata. 2.5.1 Vektor Adresu odreenog elementa vektora daje egov poloaj u vrsti (koloni). Ako postoji vektor ve, onda ve(k) oznaava element tog vektora na mestu k. Prvo mesto je 1. Primera radi, ukoliko vektor ve ima devet elemenata:
ve = 35 46 78 23 5 14 81 3 55 onda je ve(4) = 23, ve(7) = 81, i ve(1) = 35. Svaki element vektora, v(k), moete upotrebavati kao zasebnu promenivu. Na primer, moete promeniti vrednost samo jednog elementa vektora dodeivaem nove vrednosti odreenoj adresi. To ete uraditi iskazom v(k) = vrednost. Svaki element moete upotrebavati kao zasebnu promenivu i u matematikim izrazima. Primeri: >>VCT=[35 46 78 23 5 14 81 3 55] VCT= 35 46 78 23 5 14 81 3 >>VCT(4) ans= 23 >>VCT(6)=273 Deniemo vektor. 55 Prikazujemo etvrti element. Dodeujemo novu vrednost estom elementu.

2.5 Adresirae nizova

33

VCT= 35 46 78 23 5 273 81 >>VCT(2)+VCT(8) ans= 49 >>VCT(5)^VCT(8)+sqrt(VCT(7)) ans= 134 >>

55

Prikazuje se ceo vektor.

Elemente vektora upotrebavamo u matematikim izrazima.

2.5.2 Matrica Adresa elementa matrice je egov poloaj, denisan brojem vrste i kolone elije u kojoj se nalazi. Ako je promenivoj ma pridruena matrica, ma(k,p) oznaava element u vrsti k i koloni p.
Na primer, ako je matrica: ma =
3 11 6 5 4 7 10 2 13 9 0 8

onda je ma(1,1) = 3 i ma(2,3) = 10. Kao i kod vektora, moete meati vrednost pojedinanih elemenata matrice dodeivaem nove vrednosti tom elementu. Pojedinane elemente moete upotrebavati kao promenive u matematikim izrazima i funkcijama. Slede primeri. >>MAT=[3 11 6 5; 4 7 10 2; 13 9 0 8] MAT=
3 11 6 5 4 7 10 2 13 9 0 8

Generiemo matricu 3 4.

>>MAT(3,1)=20 MAT=
3 11 6 5 4 7 10 2 20 9 0 8

Dodeujemo nove vrednosti elementu (3,1).

>>MAT(2,4)- MAT(1,2) ans= -9 >>

Upotreba elemenata u matematikom izrazu.

34

Poglave 2: Generisae nizova

2.6 UPOTREBA DVOTAKE U ADRESIRAU NIZOVA Dvotaka se upotrebava za adresirae opsega elemenata vektora ili matrice.
Za vektor: va(:) Oznaava sve elemente vektora va (vektora vrste ili vektora kolone). va(m:n) Oznaava elemente od m do n vektora va. Primer: >>v=[4 15 8 12 34 2 50 23 11] v= 4 15 8 12 34 2 50 >>u=v(3:7) u= 8 12 34 2 50 >> Za matricu: A(:,n) Oznaava elemente u svim vrstama kolone n matrice A. A(n,:) Oznaava elemente u svim kolonama vrste n matrice A. A(:,m:n) Oznaava elemente u svim vrstama izmeu kolona m i n matrice A. A(m:n,:) Oznaava elemente u svim kolonama izmeu vrsta m i n matrice A. A(m:n,p:q) Oznaava elemente u vrstama od m do n i kolonama od p do q matrice A. Upotreba dvotake u adresirau elemenata matrica prikazana je u vebi 2-3.
Veba 2-3: Upotreba dvotake u adresirau matrica

Napraven je vektor v. 23 11 Vektor u je napraven od elemenata od 3 do 7 vektora v.

>>A=[1 3 5 7 9 11; 2 4 6 8 10 12; 3 6 9 12 15 18; 4 8 12 16 20 24; 5 10 15 20 25 30] A= Deniemo matricu A sa 5 vrsta i 6 kolona. 1 3 5 7 9 11 2 4 6 8 10 12 3 6 9 12 15 18 4 8 12 16 20 24 Deniemo vektor kolonu B 5 10 15 20 25 30 od elemenata u svim vrstama >>B=A(:,3) kolone 3 matrice A. B= 5 6 9 12 15

2.6 Upotreba dvotake u adresirau nizova

35

Veba 2-3: Upotreba dvotake u adresirau matrica

>>C=A(2,:) C= 2 4 6 8 10 12 >>E=A(2:4,:) E= 2 4 6 8 10 12 3 6 9 12 15 18 4 8 12 16 20 24 >>F=A(1:3,2:4) F=


35 7 46 8 6 9 12

Deniemo vektor vrstu C od elemenata u svim kolonama vrste 2 matrice A. Deniemo matricu E od elemenata u svim kolonama izmeu vrsta 2 i 4 matrice A.

Deniemo matricu F od elemenata u vrstama od 1 do 3 i kolonama od 2 do 4 matrice A.

>> U vebi 2-3 novi vektori i matrice napraveni su od postojeih zadavaem opsega elemenata ili opsega vrsta i kolona (pomou simbola :). Meutim, nove promenive moete generisati i od pojedinanih elemenata ili odreenih vrsta i kolona postojeih promenivih. To ete uraditi kada izabrane elemente ili vrste i kolone upiete unutar zagrada, kao u sledeim primerima: >>v=4:3:34 Generiemo vektor v sa 11 elemenata. v= 4 7 10 13 16 19 22 25 28 31 34 >>u=v([3, 5, 7:10]) Generiemo vektor u od treeg, petog i od sedmog do desetog elementa vektora v. u= 10 16 22 25 28 31 >>A=[10:-1:4; ones(1,7); 2:2:14; zeros(1,7)] Generiemo matricu A dimenzija 4 7. A=
10 1 2 0 9 1 4 0 8 1 6 0 7 1 8 0 6 1 10 0 5 1 12 0 4 1 14 0

>>B=A([1,3],[1,3,5:7]) B=
10 8 6 5 4 2 6 10 12 14

Generiemo matricu B od prve i tree vrste, i prve, tree i od pete do sedme kolone matrice A.

36

Poglave 2: Generisae nizova

2.7 DODAVAE ELEMENATA POSTOJEIM PROMENIVAMA Promeniva denisana kao vektor ili matrica moe se meati dodavaem elemenata (ne zaboravite da je skalar vektor s jednim elementom). Vektoru (matrici s jednom vrstom ili kolonom) moete dodavati elemente ili ga pretvoriti u dvodimenzionalnu matricu. Dodajte vrste i/ili kolone postojeoj matrici da biste dobili matricu drugaijih dimenzija. Elementi se dodaju tako to im se dodele vrednosti ili pridrue postojee promenive.
Dodavae elemenata vektoru: Postojeim vektorima dodajete elemente tako to dodelite vrednosti novim elementima. Na primer, ako vektor ima 4 elementa, moete ga produiti dodeivaem vrednosti elementima 5, 6 itd. Ukoliko vektor ima n elemenata, a nova vrednost se dodeli elementu ija je adresa n + 2 ili vea, MATLAB dodeuje nule elementima izmeu posledeg originalnog elementa i novog elementa. Primeri: Deniemo vektor AF sa 4 elementa. >>DF=1:4 DF= 1 2 3 4 Dodajemo 6 elemenata poev od petog. >>DF(5:10)=10:5:35 DF= 1 2 3 4 10 15 20 25 30 35 Deniemo vektor AD sa 3 elementa. >>AD=[5 7 2] AD= 5 7 2 Dodelimo vrednost osmom elementu. >>AD(8)=4 MATLAB dodeuje nule elementima AD= poev od etvrtog do sedmog. 5 7 2 0 0 0 0 4 Dodelimo vrednost petom elementu novog vektora. >>AR(5)=24 AR= MATLAB dodeuje nule elementi0 0 0 0 24 ma izmeu prvog i etvrtog. >> Vektoru se elementi mogu dodati pridruivaem postojeih vektora. Dva primera: >>RE=[3 8 1 24]; >>GT=4:3:16; >>KNH=[RE GT] KNH= 3 8 1 24 Deniemo vektor RE sa 4 elementa. Deniemo vektor GT sa 5 elemenata. Deniemo nov vektor KNH pridruivaem vektora RE i GT. 4 7 10 13 16

2.7 Dodavae elemenata postojeim promenivama

37

>>KNV=[RE'; GT'] KNV= 3 8 1 24 4 7 10 13 16 Dodavae elemenata matrici:

Generiemo nov vektor kolonu KNV pridruivaem transponovanih vektora RE' i GT'.

Postojeoj matrici nove vrste i/ili kolone moete dodati tako to dodelite vrednosti novim vrstama odnosno kolonama. Moete dodeliti nove vrednosti ili pridruiti postojee promenive. To se mora raditi paivo, poto veliina dodatih vrsta odnosno kolona mora odgovarati postojeoj matrici. Primeri su: >>E=[1 2 3 4; 5 6 7 8] E=
1234 5678

Deniemo matricu E dimenzija 2 4.

>>E(3,:)=[10:4:22] E=
1 2 3 4 5 6 7 8 10 14 18 22

Dodajemo vektor 10 14 18 22 kao treu vrstu matrice E.

>>K=eye(3) K=
100 010 001

Deniemo matricu K dimenzija 3 3.

>>G=[E K] G=
1 2 3 4 100 5 6 7 8 010 10 14 18 22 0 0 1

Pridruujemo matricu K matrici E. Broj vrsta u matricama E i K mora biti jednak.

38

Poglave 2: Generisae nizova Ako matrica ima dimenzije m n, a nova vrednost je dodeena elementu ija je adresa izvan dimenzija matrice, MATLAB e poveati dimenzije matrice da bi obuhvatio novi element. Ostalim dodatim elementima MATLAB dodeuje nule. Primeri: >>AW=[3 6 9; 8 5 11] AW=
36 9 8 5 11

Deniemo matricu 2 3.

>>AW(4,5)=17 AW=
3 8 0 0 6 5 0 0 9 11 0 0 0 0 0 0 0 0 0 17

Dodeujemo vrednost elementu (4,5). MATLAB mea dimenzije matrice na 4 5 i dodeuje nule novim elementima. Dodeujemo vrednost elementu (3,4) nove matrice. MATLAB generie matricu dimenzije 3 4 i dodeuje nule svim enim elementima sem elementu BG(3,4).

>>BG(3,4)=15 BG=
000 0 000 0 0 0 0 15

>>

2.8 UKLAAE ELEMENATA Element ili opseg elemenata postojee matrice uklaa se kada im se ne dodeli nita (kada u uglaste zagrade ne napiete nita). Uklaaem elemenata skraujete vektor, a matrici smaujete dimenzije. Primeri su:
>>kt=[2 8 40 65 3 55 23 15 75 80] kt= 2 8 40 65 3 55 23 15 >>kt(6)=[] kt= 2 8 40 65 3 23 15 75 Deniemo vektor sa 10 elemenata. 75 80 Uklaamo esti element. 80 Vektor sada ima 9 elemenata.

>>kt(3:6)=[] Uklaamo elemente od 3 do 6. kt= Vektor sada ima 2 8 15 75 80 5 elemenata. >>mtr=[5 78 4 24 9; 4 0 36 60 12; 56 13 5 89 3]

2.9 Ugraene funkcije za obradu nizova

39

mtr=
5 78 4 24 9 4 0 36 60 12 56 13 5 89 3

Deniimo matricu 3 5.

>>mtr(:,2:4)=[] mtr=
5 9 4 12 56 3

Uklaamo sve vrste iz kolona od 2 do 4.

>>

2.9 UGRAENE FUNKCIJE ZA OBRADU NIZOVA MATLAB ima mnogo ugraenih funkcija (engl. built-in functions) za obradu nizova i rad s ima. Meu ima su i sledee:
Tabela 2-2: Ugraene funkcije za obradu nizova

Funkcija
length(A)

Opis Primer Vraa broj elemenata vektora A. >>A=[5 9 2 4]


>>lenght(A) ans= 4 >>A=[6 1 4 0 12; 5 19 6 8 2] A= 6 1 4 0 12 5 19 6 8 2 >>size(A) ans= 2 5 >>A=[5 1 6; 8 0 2] A= 5 1 6 8 0 2 >>B=reshape(A,3,2) B= 5 0 8 6 1 2

size(A)

Vraa vektor vrstu [m,n], pri emu m i n odreuju dimenzije m n niza A.

reshape(A, m,n)

Preureuje matricu A sa r vrsta i s kolona tako da ima m vrsta i n kolona. Proizvod r i s mora biti jednak proizvodu m i n.

40

Poglave 2: Generisae nizova

Tabela 2-2: Ugraene funkcije za obradu nizova (nastavak)

Funkcija
diag(v)

Opis Kada je v vektor, generie kvadratnu matricu sa elementima v na dijagonali.

Primer
>>v=[7 4 2]; >>A=diag(v) A= 7 0 0 0 4 0 0 0 2 >>A=[1 2 3; 4 5 6; 7 8 9] A= 1 2 3 4 5 6 7 8 9 >>vec=diag(A) vec= 1 5 9

diag(A)

Kada je A matrica, generie vektor od elemenata glavne dijagonale matrice A.

Sve ugraene funkcije za rad s nizovima opisane su u prozoru sistema za pomo (Help). U tom prozoru odaberite Functions by Category, pa zatim Mathematics i potom Arrays and Matrices. Moda se seate iz poglava 1 da komanda who prikazuje imena svih tekuih promenivih u memoriji. Komanda whos sem imena prikazuje i dimenzije, broj zauzetih bajtova i klasu. Naveemo primer. >>a=7; >>E=3; >>d=[5, a+E, 4, E^2] d= 5 10 4 9 >>g=[a, a^2, 13; a*E, 1, a^E] g=
7 49 13 21 1 343

Deklariemo promenive a, E, d i g.

>>who Your variables are: Eadg >>whos

Komanda who prikazuje imena svih tekuih promenivih u memoriji.

2.9 Ugraene funkcije za obradu nizova

41

Name Size Bytes Class Komanda whos prikazuje imena tekuih E 1x1 8 double array promenivih, ihove dimenzije, broj zauzetih bajtova i klasu. a 1x1 8 double array d 1x4 32 double array g 2x3 48 double array Grand total is 12 elements using 96 bytes >>

Primer zadatka 2-1: Generisae matrice


Pomou komandi ones i zeros napravite matricu 4 5 u kojoj su prve dve vrste ispuene nulama, a sledee dve jedinicama. Reee >>A(1:2,:)=zeros(2,5) A=
00000 00000

Prvo pravimo matricu 2 5 sa nulama.

>>A(3:4,:)=ones(2,5) A=
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

Dodajemo vrste 3 i 4 sa jedinicama.

>>

Primer zadatka 2-2: Generisae matrice


Napravite matricu 6 6 u kojoj su dve srede vrste i dve srede kolone ispuene jedinicama, a ostatak nulama. Reee >>AR=zeros(6,6) AR=
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Prvo pravimo matricu 6 6 sa nulama.

42

Poglave 2: Generisae nizova

>>AR(3:4,:)=ones(2,6) AR=
0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0

Treoj i etvrtoj vrsti dodeujemo broj 1.

>>AR(:,3:4)=ones(6,2) AR=
0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0

Treoj i etvrtoj koloni dodeujemo broj 1.

Primer zadatka 2-3: Rad s matricom


Date su matrica A dimenzija 5 6, matrica B dimenzija 3 6, i vektor v sa 9 elemenata.
2 3 A = 4 5 6 5 6 7 8 9 8 9 10 11 12 11 12 13 14 15 14 15 16 17 18 17 18 19 20 21 5 10 15 20 25 30 B = 30 35 40 45 50 55 55 60 65 70 75 80 v = 99 98 97 96 95 94 93 92 91

U komandnom prozoru napravite ta tri niza i zatim, pomou jedne komande, zamenite etiri poslede kolone prve i tree vrste matrice A s prve etiri kolone prve dve vrste matrice B, poslede etiri kolone etvrte vrste matrice A elementima od 5 do 8 vektora v, i poslede etiri kolone pete vrste matrice A kolonama od 3 do 5 tree vrste matrice B.

2.9 Ugraene funkcije za obradu nizova

43

Reee >>A=[2:3:17; 3:3:18; 4:3:19; 5:3:20; 6:3:21] A=


2 3 4 5 6 5 6 7 8 9 8 9 10 11 12 11 12 13 14 15 14 15 16 17 18 17 18 19 20 21

>>B=[5:5:30; 30:5:55; 55:5:80] B=


5 10 15 20 25 30 30 35 40 45 50 55 55 60 65 70 75 80

>>v=[99:-1:91] v= 99 98 97 96 95 94 93 92 91 >>A([1 3 4 5],3:6)=[B([1 2],1:4); v(5:8); B(3,2:5)]

Matrica 4 4 sastavena od kolona od 3 do 6 u vrstama 1, 3, 4 i 5.

Matrica 4 4. Prve dve vrste ine kolone od 1 do 4 iz vrsta 1 i 2 matrice B. Treu vrstu ine elementi od 5 do 8 vektora v. etvrtu vrstu ine kolone od 2 do 5 iz vrste 3 matrice B.

A=
2 3 4 5 6 5 6 7 8 9 5 9 30 95 60 10 12 35 94 65 15 15 40 93 70 20 18 45 92 75

44

Poglave 2: Generisae nizova

2.10 ZNAKOVNI NIZOVI Znakovni niz se dobija upisivaem znakova unutar polunavodnika. Znakovni nizovi mogu da sadre slova, cifre, ostale simbole i razmake. Primeri znakovnih nizova: 'ad ef', '3%fr2', '{edcba:21!', 'MATLAB'. Znakovni niz koji sadri polunavodnik dobija se upisivaem dva polunavodnika unutar znakovnog niza. Kada otkucate prvi polunavodnik znakovnog niza, boja teksta koji upisujete promenie se u ubiastu. Kada otkucate posledi polunavodnik znakovnog niza, boja znakovnog niza promenie se u kesteastu.
Znakovni nizovi imaju nekoliko primena u MATLAB-u. Upotrebavaju se u izlaznim komandama za prikazivae tekstualnih poruka (poglave 4), u komandama za formatirae graka (poglave 5), i kao ulazni argumenti nekih funkcija (poglave 6). Pojedinosti su date u poglavima gde se znakovni nizovi koriste u navedene svrhe. Kada se znakovni nizovi koriste za formatirae graka (natpisa na osama, naslova i tekstualnih napomena), moete izabrati font, veliinu, boju, mala odnosno velika slova itd. Vie o tome proitajte u poglavu 5. Znakovni niz moete dodeliti promenivoj upiite ga desno od operatora dodele, kao u sledeim primerima: >>a='FRty 8' a= FRty 8 >>B='Zovem se Petar Jankov' B= Zovem se Petar Jankov >> Kada je promeniva denisana kao znakovni niz, egovi znakovi se pamte kao da su u pitau brojevi. Svaki znak je zaseban element niza, ukuujui i razmake. To znai da je jednoredan znakovni niz zapravo vektor vrsta u kojem je broj elemenata jednak broju znakova. Elementi vektora se adresiraju prema svom poloaju. Na primer, u prethodno denisanom vektoru B, etvrti element je slovo e, dvanaesti slovo t itd. >>B(4) ans= e >>B(12) ans= t >>

2.10 Znakovni nizovi

45

Kao i u vektorima koji sadre brojeve, elemente znakovnog niza moete pojedinano meati direktnim adresiraem. Na primer, u prethodno denisanom vektoru B ovako ete ime Petar promeniti u Jovan: >>B(10:14)='Jovan' B= Zovem se Jovan Jankov >>

Upotreba dvotake za dodeivae novih znakova elementima od 10 do 14 vektora B.

Znakovni nizovi mogu biti smeteni u matricu. Kao i s brojevima, svaku vrstu takve matrice zavrite takom i zarezom (ili pritisnite Enter). Svaka vrsta takve matrice mora sadrati jednak broj znakova upisanih izmeu polunavodnika. Ukoliko u vrste matrice treba snimiti unapred odreen tekst, zahtev za jednakim brojem elemenata u svakoj vrsti zadovoite nadopuavaem svakog znakovnog niza (vrste) potrebnim brojem razmaka. MATLAB ima ugraenu funkciju char koja od znakovnih nizova nejednakog broja elemenata generie matricu s vrstama jednake duine. char izjednaava duine vrsta tako to izbroji znakove najdueg znakovnog niza i zatim na kraj kraih nizova doda potreban broj razmaka. Ulazni argumenti funkcije char jesu znakovni nizovi razdvojeni zarezima:
ime_promenive = char ('znakovni niz 1','znakovni niz 2', 'znakovni niz 3')

Na primer: >>Info=char('Ime studenta:','Petar Jankov'.'Ocena:','10') Info= Promenivoj Info su pridruena etiri reda Ime studenta: od znakovnih nizova razliite duine. Petar Jankov Funkcija char generie matricu sa etiri vrste ije Ocena: su duine jednake duini najdueg znakovnog 10 niza, tako to kraim nizovima dodaje razmake. >> Promeniva moe biti denisana kao broj ili kao znakovni niz koji sadri iste te cifre. U sledeem primeru, x je broj 536, a y znakovni niz sastaven od cifara 536. >>x=536 x= 536 >>y='536' y= 536 >>

46

Poglave 2: Generisae nizova

Te dve promenive nisu jednake, premda na ekranu tako izgledaju. Promenivu x moete upotrebavati u matematikim izrazima, a promenivu y ne moete.

2.11 ZADACI 1. Napravite vektor vrstu od elemenata: 32, 4, 81, e2.5, 63, cos(/3) i 14.12. 2. Napravite vektor kolonu od elemenata: 55, 14, ln(51), 987, 0 i 5sin(2.5). 3. Napravite vektor vrstu u kojem je prvi element 1, posledi 33, a korak izmeu elemenata 2 (1, 3, 5, , 33). 4. Napravite vektor kolonu u kojem je prvi element 15, posledi 25, a elementi se smauju za po -5. (Vektor kolona se moe napraviti transponovaem vektora vrste.) 5. Napravite vektor vrstu sa 15 jednako razmaknutih elemenata od kojih je prvi 7, a posledi 40. 6. Napravite vektor kolonu sa 12 jednako razmaknutih elemenata od kojih je prvi 1, a posledi -15. 7. Napravite vektor Prvi sa 16 elemenata od kojih je 4 prvi, 49 posledi, a korak izmeu ih 3. Zatim pomou dvotake napravite nov vektor Drugi sa osam elemenata. Prva etiri egova elementa napravite od prva etiri elementa vektora Prvi, a druga etiri egova elementa od etiri posleda elementa istog vektora. 8. Napravite dole prikazanu matricu koristei vektorsku notaciju za generisae vektora od elemenata s konstantnim korakom i/ili komandu linspace.
1 4 7 10 13 16 19 22 25 B = 72 66 60 54 48 42 36 30 24 0 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1.000

6 43 2 11 87 9. Napravite sledeu matricu A: A = 12 6 34 0 5 34 18 7 41 9

Pomou matrice A: a) Od elemenata druge vrste matrice A, napravite vektor vrstu va sa pet elemenata. b) Od elemenata etvrte kolone matrice A, napravite vektor vrstu vb sa tri elementa. c) Od elemenata prve i druge vrste matrice A, napravite vektor vrstu vc sa deset elemenata. d) Od elemenata druge i pete kolone matrice A, napravite vektor vrstu vd sa est elemenata.

2.11 Zadaci

47

10. Napravite sledeu matricu C:

2 4 6 8 10 C = 3 6 9 12 15 7 14 21 28 35

Pomou matrice C: a) Od elemenata tree kolone matrice C, napravite vektor kolonu ua sa tri elementa. b) Od elemenata druge vrste matrice C, napravite vektor kolonu ub sa pet elemenata. c) Od elemenata prve, tree i pete kolone matrice C, napravite vektor kolonu uc sa devet elemenata. d) Od elemenata prve i druge vrste matrice C, napravite vektor kolonu ud sa deset elemenata.
1 A = 2 21 5 2 4 18 10 3 6 15 15 4 8 12 20 5 10 9 25 6 12 6 30 7 14 3 35

11. Napravite sledeu matricu A:

a) Napravite matricu B dimenzija 3 4 od prve, tree i etvrte vrste, i prve, tree, pete i sedme kolone matrice A. b) Napravite vektor vrstu u od ukupno 15 elemenata tree vrste, i pete i sedme kolone matrice A. 12. Napravite sledee matrice komandama zeros, ones i eye. a)
00000 00000

b)

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

c)

11 11 11

13. Pomou komande eye napravite matricu A prikazanu dole levo. Zatim je, koristei dvotaku za adresirae elemenata niza, izmenite tako da bude jednaka matrici prikazanoj desno.
1 0 0 A = 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 2 2 3 A = 0 4 4 4 2 2 3 0 4 4 4 2 2 3 0 7 7 7 0 0 0 1 0 0 0 5 5 5 0 9 9 9 5 5 5 0 9 9 9 5 5 5 0 9 9 9

48

Poglave 2: Generisae nizova 14. Pomou komandi zeros i ones napravite matricu 3 5 u kojoj su prva, druga i peta kolona popuene nulama, a trea i etvrta kolona popuene jedinicama. 15. Napravite matricu 5 7 ija prva vrsta sadri brojeve 1 2 3 4 5 6 7, druga brojeve 8 9 10 11 12 13 14, trea brojeve od 15 do 21 itd. Od te matrice napravite novu matricu B dimenzija 3 4, koja sadri vrste od 2 do 4 i kolone od 3 do 6 prve matrice. 16. Napravite matricu A dimenzija 3 3 u kojoj su svi elementi 1, i matricu B dimenzija 2 2 u kojoj su svi elementi 5. Zatim matrici A dodajte elemente matrice B tako da dobijete:
1 1 A = 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 5 5 0 0 0 5 5

You might also like