11.07.2015 Views

INFORMATIKA II MATLAB 2. deo

INFORMATIKA II MATLAB 2. deo

INFORMATIKA II MATLAB 2. deo

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<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!