11.07.2015 Views

INFORMATIKA II MATLAB 2. deo

INFORMATIKA II MATLAB 2. deo

INFORMATIKA II MATLAB 2. deo

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>INFORMATIKA</strong> <strong>II</strong><strong>MATLAB</strong> <strong>2.</strong> <strong>deo</strong>Rudarsko-geološki fakultetRudarski odsek


Nizovi◦ Niz (array) je osnovni oblik u kojem <strong>MATLAB</strong> čuvapodatke i radi s njima◦ Niz je skup brojeva poređanih u vrste (redove) i/ilikolone◦ Najjednostavniji (jednodimenzionalni) niz jeste vrsta ilikolona brojeva◦ Složeniji (dvodimenzionalni) niz je skup brojevapoređanih u vrste i kolone◦ U nizovima se podaci čuvaju kao u tabeli◦ U prirodnim i tehničkim naukama, jednodimenzionalninizovi često predstavljaju vektore, a dvodimenzionalnimatrice◦ Sem brojeva, u <strong>MATLAB</strong>-u nizovi mogu sadržati iznakove, pa takve nizove zovemo znakovni nizovi(strings)


Jednodimenzionalni nizovi (vektor)◦ Jednodimenzionalni niz je skup brojeva poređanih u vrstu ilikolonu◦ Primer takvog niza su koordinate tačke u trodimenzionalnomDekartovom (pravouglom) koordinatnom sistemu◦ Na slici položaj tačke A je definisan njenim koordinatama,odnosno uređenom trojkom (2, 4, 5)◦ Položaj tačke A(2, 4, 5), određen je i putem vektora položaja:rA = 2i + 4j + 5kgde su i, j i k jedinični vektori u smeru osa x, y i z◦ Brojevi 2, 4 i 5 definišu vektor vrstu ili vektor kolonuA(2, 4, 5)


Transformisanje tabele u vektore◦ Svaki skup brojeva može poslužiti zadefinisanje vektora◦ U tabeli datoj u primeru navedeni su podaci orastu stanovništva od kojih se mogu napravitidva skupa brojeva (vektora) - za godine i zabroj stanovnika◦ Podatke u svaki skup se unose kao elementivektora poređani u vrstu ili kolonuGodina 1984 1986 1988 1990 1992 1994 1996Stanovništvo (u milionima) 127 130 136 145 158 178 211


Generisanje vektora◦ U <strong>MATLAB</strong>-u se vektor generiše dodeljivanjem elemenatavektora promenljivoj◦ To se može uraditi na više načina zavisno od izvora podatakakoji se koriste za elemente vektora◦ Kada vektor sadrži poznate brojeve (kao što su koordinatetačke A) vrednost svakog elementa se unosi direktno◦ Element vektora može biti i matematički izraz koji sadržiprethodno definisane promenljive, brojeve i funkcije◦ Elementi vektora mogu da predstavljaju niz brojeva koji semeđusobno razlikuju za konstantnu vrednost (vektor sakonstantnim korakom)◦ U takvim slučajevima, vektor se može formiratiodgovarajućom <strong>MATLAB</strong>-ovom komandom◦ Vektor se može dobiti i kao rezultat matematičkih operacija,što će biti objašnjeno kasnije


Izraz za generisanje vektora◦ Vektor se generiše upisivanjem elemenata(brojeva) unutar uglastih zagrada [ ]:ime_promenljive = [elementi vektora]◦ Vektor vrsta: Za generisanje vektora vrste,elementi se unutar uglastih zagrada razdvajajurazmakom (blanko) ili zarezom◦ Vektor kolona: Za generisanje vektora kolone,unese se leva uglasta zagrada [, a zatim se unoseelementi razdvojeni znakom tačka-zarez, ili seposle unošenja svakog elementa pritisne Enter;nakon poslednjeg elementa, unese se desnauglasta zagrada ].


Generisanje vektora od datihpodataka◦ Pomoću podataka iz tabele o stanovištvu i koordinatatačke A napraviti vektor vrstu i vektor kolonu


Generisanje vektora sa konstantnimkorakom između elemenata (I)◦ Vektor sa konstantnim korakom između elemenata segeneriše zadavanjem prvog elementa, koraka iposlednjeg elementa◦ Vektor sa konstantnim korakom između elemenatasadrži elemente čija je razlika konstantna◦ Na primer, u vektoru v = 2 4 6 8 10, korak izmeduelemenata je 2◦ Da bi se generisao vektor čiji je prvi element m, korakq, a poslednji element n treba uneti:ime_promenljive = [m:q:n] ili ime_promenljive =m:q:n◦ Ako su brojevi m, q i n takvi da se n ne može dobitikao zbir broja m i celobrojnog umnoška broja q, ondaće (za pozitivnu vrednost n) poslednji elementvektora biti najveći broj koji nije veći od n


Primer


Generisanje vektora sa konstantnimkorakom između elemenata (<strong>II</strong>)◦ Vektor sa konstantnim korakomizmeđu elemenata može se generisatizadavanjem prvog i poslednjegelementa i ukupnog broja elemenata◦ Da bi se generisao vektor čiji je prvielement x i , poslednji x j , a ukupan brojelemenata n, koristi se komandalinspace pri čemu <strong>MATLAB</strong> izračunavaodgovarajući korak:ime_promenljive = linspace (x i , x j , n)


Primer


Dvodimenzionalni nizovi (matrice)◦ Dvodimenzionalan niz (matrica) sadrži brojevepoređane u vrste i kolone◦ Matrice se mogu upotrebiti za skladištenje podatakakao u tabeli◦ Matrice igraju važnu ulogu u linearnoj algebri, a uprirodnim i tehničkim naukama koriste se za opisivanjemnogih fizičkih veličina◦ Kvadratna matrica ima jednak broj vrsta i kolona◦ Na primer, matrica:⎡7⎢⎢3⎢⎣64859⎤1⎥⎥3⎥⎦je kvadratna matrica 3x3, sa 3 vrste i 3kolone


Definisanje matrica (I)◦ Broj vrsta može biti različit od broja kolona◦ Matrica mxn ima m vrsta i n kolona, pa kažemo da jeveličina matrice m puta n◦ Matrica se definiše dodeljivanjem elemenata matrice nekojpromenljivoj◦ Elementi matrice se upisuju, vrsta po vrsta, unutaruglastih zagrada [ ]◦ Prvo se upiše leva zagrada [, zatim elementi prve vrsterazdvojeni razmacima ili zarezima◦ Da bi se prešlo na sledeću vrstu, upiše se tačka-zarez, ilipritisne Enter◦ Na kraju poslednje vrste upiše se desna zagrada ]ime_promenljive = [elementi prve vrste; elementi drugevrste; elementi treće vrste; ...; elementi poslednje vrste]


Definisanje matrica (<strong>II</strong>)◦ Elementi matrice mogu biti brojevi ilimatematički izrazi koji sadrže brojeve,prethodno definisane promenljive ifunkcije◦ Sve vrste moraju imati jednak brojelemenata◦ Ako je element nula, mora se upisati 0◦ Ukoliko se upiše nepotpuna matrica,<strong>MATLAB</strong> će prikazati poruku o grešci◦ Matrice se mogu dobiti i kao rezultatmatematičkih operacija s vektorima imatricama


Vežba: primeri različito definisanihmatrica


Vrste matrice kao vektori◦ Vrste matrice se mogu uneti i kao vektori, pri čemu semože koristiti izraz za generisanje vektora sa konstantnimkorakom između elemenata ili komanda linspace◦ U primeru, prve dve vrste su unete kao vektori pomoćunotacije za generisanje vektora sa konstantnim korakomizmeđu elemenata, treća vrsta je uneta pomoću komandelinspace, a elementi poslednje vrste uneti su pojedinačno


Komande zeros, ones i eye◦ Komande zeros(m,n), ones(m,n) i eye(n)generišu matrice čiji elementi imaju specijalnevrednosti◦ Komande zeros(m,n) i ones(m,n) generišumatrice sa m vrsta i n kolona, u kojima su svielementi nule, odnosno jedinice◦ Komanda eye(n) generiše kvadratnu matricu san vrsta i n kolona, čiji su elementi na glavnojdijagonali jedinice, a ostali nule - to je tzv.jedinična matrica (identity matrix)


Primer


Napomene o promenljivama u<strong>MATLAB</strong>-u◦ Sve promenljive u <strong>MATLAB</strong>-u su nizovi◦ Skalar je niz s jednim elementom, vektor je niz s jednomvrstom ili jednom kolonom elemenata, a matrica je niz saelementima u vrstama i kolonama◦ Promenljiva (skalar, vektor ili matrica) definisana je kada jojse dodele elementi◦ Veličinu niza nije potrebno unapred definisati (jedan elementza skalar, jedna vrsta ili kolona elemenata za vektor,dvodimenzionalni niz elemenata za matricu)◦ Postojeća promenljiva (skalar, vektor ili matrica) možemenjati veličinu i tip◦ Na primer, skalar se može pretvoriti u vektor ili matricu,vektor se može pretvoriti u skalar, u vektor drugačije dužineili u matricu, a matrici se može promeniti veličina ili se onamože svesti na vektor ili skalar◦ Te promene se obavljaju dodavanjem i brisanjem elemenata


Operator transponovanja◦ Kada se primeni na vektor, operator transponovanja pretvaravektor vrstu u vektor kolonu i obratno◦ Kada se primeni na matricu, pretvara njene vrste u kolone iobratno◦ Operator transponovanja se primenjuje upisivanjempolunavodnika (') iza promenljive koju treba transponovati


Adresiranje elemenata nizova -vektor◦ Elementi niza (vektora ili matrice) mogu seadresirati pojedinačno ili u podgrupama◦ To je pogodno kada treba redefinisati samo pojedineelemente, upotrebiti određene elemente u proračunuili definisati novu promenljivu pomoću podgrupeelemenata◦ Adresu određenog elementa vektora daje njegovpoložaj u vrsti (koloni)◦ Ako je promenljivoj vct pridružen vektor, ondavct(k) označava element tog vektora na mestu k(prvo mesto je 1)◦ Na primer, ukoliko vektor vct ima devet elemenata:vct = [35 46 78 23 5 14 81 3 55]onda jevct(4) = 23, vct(7) = 81, vct(1) = 35


Element vektora kao zasebna promenljiva◦ Svaki element vektora, vct(k), se možeupotrebljavati kao zasebna promenljiva◦ Na primer, može se promeniti vrednostsamo jednog elementa vektoradodeljivanjem nove vrednosti određenojadresi◦ To će se uraditi iskazom vct(k) = vrednost◦ Svaki element se može upotrebljavati kaozasebna promenljiva i u izrazima


Primer


Adresiranje nizova - matrica◦ Adresa elementa matrice je njegov položaj,definisan brojem vrste i kolone u kojoj se nalazi◦ Ako je promenljivoj mat pridružena matrica,mat(k,p) označava element u vrsti k i koloni p◦ Na primer, ako je data matrica:◦ mat =⎡ 3⎢⎢4⎢⎣13117961005⎤2⎥⎥8⎥⎦onda je mat(1,2)=11, mat(2,3)=10, mat(3,1)=13


Pojedinačni elementi matrice◦ Kao i kod vektora,vrednostipojedinačnihelemenata matricese mogu menjatidodeljivanjemnovih vrednostielementima◦ Pojedinačnielementi se moguupotrebljavati ikao promenljive umatematičkimizrazima ifunkcijama


Adresiranje opsega elemenata nizova◦ Za adresiranje opsega elemenata vektora ilimatrice upotrebljava se dvotačka (:)◦ Za vektor:• vct(:) označava sve elemente vektora vct (vektoravrste ili vektora kolone)• vct(m:n) označava elemente od m do n vektora vct


Adresiranje opsega elemenata matrice◦ A(:,n) označava sve elemente n-te kolonematrice A◦ A(n,:) označava sve elemente n-te vrstematrice A◦ A(:,m:n) označava sve elemente matriceA od m-te do n-te kolone◦ A(m:n,:) označava sve elemente matriceA od m-te do n-te vrste◦ A(m:n,p:q) označava elemente matrice Akoji su istovremeno u vrstama od m-te don-te i kolonama od p-te do q-te


Vežba: Upotreba dvotačke uadresiranju matrica


Generisanje novih promenljivih odelemenata vrsta i kolona◦ Od pojedinačnihelemenata iliodređenih vrsta ikolona postojećihpromenljivihmogu segenerisati novepromenljive◦ To se radi takošto se izabranielementi, vrste ikolone naveduunutar zagrada,kao u primerima


Dodavanje elemenata postojećimpromenljivama◦ Promenljiva definisana kao vektor ili matrica možese menjati dodavanjem elemenata◦ Vektoru (matrici s jednom vrstom ili kolonom) semogu dodavati elementi ili se on može pretvoriti udvodimenzionalnu matricu◦ Dodavanjem vrste i/ili kolone postojećoj matricimože se dobiti matrica drugačijih dimenzija◦ Elementi se dodaju tako što im se dodelevrednosti ili pridruže postojeće promenljive


Dodavanje elemenata vektoru◦ Postojećim vektorima sedodaju elementi tako štose novim elementimadodele vrednosti◦ Na primer, ako vektorima 4 elementa, on semože produžitidodeljivanjem vrednostielementima 5, 6 itd.◦ Ukoliko vektor ima nelemenata, a novavrednost se dodelielementu čija je adresan+2 ili veća, <strong>MATLAB</strong>elementima između n-tog elementa i novogelementa dodeljuje nule


Primer: dodavanje elemenata vektorupridruživanjem postojećih vektora


Dodavanje elemenata matrici◦ Postojećoj matrici novevrste i/ili kolone semogu dodati tako što sedodele vrednostielementima novih vrstaodnosno kolona◦ Nove vrste i kolone semogu dodavati ipridruživanjempostojećih promenljivih◦ Veličina dodatih vrsta ikolona mora biti uskladu sa veličinomvrsta i kolona postojećematrice


Dodeljivanje nove vrednosti elementučija je adresa izvan dimenzija matrice◦ Ako matrica imadimenzije m x n, anova vrednost jedodeljena elementučija je adresa izvandimenzija matrice,<strong>MATLAB</strong> će povećatidimenzije matricetako da matricaobuhvati novielement◦ Ostalim dodatimelementima<strong>MATLAB</strong> dodeljujenule


Uklanjanje elemenata◦ Element ili opsegelemenatapostojeće matricese uklanja kada seiza elementa iliopsega elemenatanavedu uglastezagrade bezsadržaja◦ Uklanjanjemelemenata skraćujese vektor, a matricismanjuje dimenzija


Ugrađene funkcije za obradu nizova (I)◦ <strong>MATLAB</strong> ima mnogo ugrađenih funkcija (built-in functions) za obradunizova i rad s njima◦ Sve ugrađene funkcije za rad s nizovima opisane su u prozoru sistemaza pomoć (Help)◦ U tom prozor treba odabrati „Functions by Category", pa zatim„Mathematics" i potom ,,Arrays and Matrices"Funkcija Opis Primerlength Vraća broj elemenata vektora A. »A=[5 9 2 4]>>length(A)ans=4size(A)reshape (A, m, n)Vraća dvodimenzionalni vektor vrstu [m,n], pri čemusu m i n dimenzije m x n matrice A.Preuređuje matricu A sa r vrsta i s kolona u matricusa m vrsta i n kolona, pri čemu proizvod r i s mora bitijednak proizvodu m i n>>A=[6 1 4 0 12;5 19 6 8 2]A=6 1 4 0 125 19 6 8 2>>size(A)ans=2 5.>>A= [5 1 6; 8 0 2]A =5 1 68 0 2>>B=reshape(A,3,2)5 08 61 2


Ugrađene funkcije za obradu nizova (<strong>II</strong>)Funkcija Opis Primerdiag(v)diag(A)Kada je v vektor, generiše kvadratnu matricu saelementima v na dijagonaliKada je A matrica, generiše vektor od elemenataglavne dijagonale matrice A>>V=[7 4 2];>>A=diag(V)A=7 0 00 4 00 0 2>>A=[1 2 3; 4 5 6; 7 8 9]A=1 2 34 5 67 8 9>>vec=diag(A)vec=159


Primer: Generisanje matrice◦ Pomoćukomandi ones izeros napravitimatricu 4 x 5 ukojoj su prvedve vrsteispunjenenulama, asledeće dvejedinicama


Primer: Generisanje matrice◦ Napravitimatricu 6 x6 u kojoj sudve srednjevrste i dvesrednjekoloneispunjenejedinicama,a ostataknulama


Primer: rad s matricom (I)◦ Date su matrica A dimenzija 5x6,matrica B dimenzija 3x6, i vektorv sa 9 elemenataA=⎡2⎢⎢3⎢4⎢⎢5⎢⎣656789891011121112131415141516171817⎤18⎥⎥19⎥⎥20⎥21⎥⎦B=⎡ 5⎢⎢30⎢⎣5510356015406520457025507530⎤55⎥⎥80⎥⎦v=[99 98 97 96 95 94 93 92 91]


Primer: rad s matricom (<strong>II</strong>)◦ U komandnom prozoru napraviti ta triniza i zatim, pomoću jedne komande:• zameniti četiri poslednje kolone prve itreće vrste matrice A s prve četiri koloneprve dve vrste matrice B• zameniti poslednje četiri kolone četvrtevrste matrice A elementima od 5 do 8vektora v• zameniti poslednje četiri kolone petevrste matrice A kolonama od 2 do 5 trećevrste matrice B


Primer: rad s matricom (<strong>II</strong>I)


Samostalan rad (I)◦ Napraviti vektor vrstu od elemenata: 32, 4, 81, e <strong>2.</strong>5 , 63,cos(π/3) i 14.12◦ Napraviti vektor kolonu od elemenata: 55, 14, ln(51),987, 0 i 5sin(<strong>2.</strong>5π)◦ Napraviti vektor vrstu u kojem je prvi element 1, poslednji33, a korak između elemenata 2 (1, 3, 5, ..., 33)◦ Napraviti vektor kolonu u kojem je prvi element 15,poslednji -25, a elementi se smanjuju za po -5 (vektorkolona se može napraviti transponovanjem vektora vrste)◦ Napraviti vektor vrstu sa 15 jednako razmaknutihelemenata od kojih je prvi 7, a poslednji 40◦ Napraviti vektor kolonu sa 12 jednako razmaknutihelemenata od kojih je prvi -1, a poslednji -15


Samostalan rad (<strong>II</strong>)◦ Napraviti vektor Prvi sa 16 elemenata od kojih je4 prvi, 49 poslednji, a korak između njih 3• Zatim pomoću dvotačke napraviti nov vektor Drugisa osam elemenata• Prva četiri njegova elementa napraviti od prva četirielementa vektora Prvi, a druga četiri njegovaelementa od četiri poslednja elementa istog vektora◦ Napraviti dole prikazanu matricu B koristećivektorsku notaciju za generisanje vektora sakonstantnim korakom između elemenata i/ilikomandu linspace⎡ 1B =⎢⎢72⎢⎣04660.1257600.25010540.37513480.50016420.62519360.75022300.87525⎤24⎥⎥1 ⎥⎦


Samostalan rad (<strong>II</strong>I)◦ Napraviti sledeću matricu A:⎡ 6A =⎢⎢45⎢⎣344361823471104187⎤5⎥⎥9 ⎥⎦◦ Pomoću matrice A:• Od elemenata druge vrste matriceA,napraviti vektor vrstu va sa pet elemenata• Od elemenata četvrte kolone matrice A,napraviti vektor vrstu vb sa tri elementa• Od elemenata prve i druge vrste matrice A,napraviti vektor vrstu vc sa deset elemenata• Od elemenata druge i pete kolone matrice A,napraviti vektor vrstu vd sa šest elemenata


Samostalan rad (IV)◦ Napraviti sledeću matricuC:⎡2C =⎢⎢3⎢⎣7614921◦ Pomoću matrice C:468122810⎤15⎥⎥35⎥⎦• Od elemenata treće kolone matrice C, napravitivektor kolonu ua sa tri elementa• Od elemenata druge vrste matrice C, napravitivektor kolonu ub sa pet elemenata• Od elemenata prve, treće i pete kolone matriceC, napraviti vektor kolonu uc sa devetelemenata• Od elemenata prve i druge vrste matrice C,napraviti vektor kolonu ud sa deset elemenata


Samostalan rad (V)◦ Pomoću komandi zeros i ones napraviti matricu 3x 5 u kojoj su prva, druga i peta kolonapopunjene nulama, a treća i četvrta kolonapopunjene jedinicama◦ Napraviti matricu 5x7 čija prva vrsta sadržibrojeve 1 2 3 4 5 6 7, druga brojeve 8 9 10 11 1213 14, treća brojeve od 15 do 21 itd.• Od te matrice napraviti novu matricu B dimenzija3x4, koja sadrži vrste od 2 do 4 i kolone od 3 do 6prve matrice


Samostalan rad (VI)◦ Napraviti matricu A dimenzija 3 x 3 u kojoj su svielementi 1, i matricu B dimenzija 2 x 2 u kojoj susvielementi5• Zatim matrici A dodati elemente matrice B tako dase dobije matrica:A =⎡1⎢⎢1⎢1⎢⎢0⎢⎣01110011100000550⎤0⎥⎥0⎥⎥5⎥5⎥⎦

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!