matlab 2. deorgf.bg.ac.rs/predmet/ro/iv semestar/informatika ii...informatika ii matlab 2. deo...

Post on 07-Mar-2020

17 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

INFORMATIKA IIMATLAB 2. deo

Rudarsko-geološki fakultet Rudarski odsek

NizoviNiz (array) je osnovni oblik u kojem MATLAB čuva podatke i radi s njima Niz je skup brojeva poređanih u vrste (redove) i/ili kolone Najjednostavniji (jednodimenzionalni) niz jeste vrsta ili kolona brojeva Složeniji (dvodimenzionalni) niz je skup brojeva poređanih u vrste i koloneU nizovima se podaci čuvaju kao u tabeli U prirodnim i tehničkim naukama, jednodimenzionalni nizovi često predstavljaju vektore, a dvodimenzionalni matrice Sem brojeva, u MATLAB-u nizovi mogu sadržati i znakove, pa takve nizove zovemo znakovni nizovi (strings)

Jednodimenzionalni nizovi (vektor)Jednodimenzionalni niz je skup brojeva poređanih u vrstu ili kolonu Primer takvog niza su koordinate tačke u trodimenzionalnom Dekartovom (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 kolonu

A(2, 4, 5)

Transformisanje tabele u vektore

Svaki skup brojeva može poslužiti za definisanje vektora U tabeli datoj u primeru navedeni su podaci o rastu stanovništva od kojih se mogu napraviti dva skupa brojeva (vektora) - za godine i za broj stanovnikaPodatke u svaki skup se unose kao elementi vektora poređani u vrstu ili kolonu

Godina 1984 1986 1988 1990 1992 1994 1996

Stanovništvo (u milionima) 127 130 136 145 158 178 211

Generisanje vektoraU MATLAB-u se vektor generiše dodeljivanjem elemenata vektora promenljivoj To se može uraditi na više načina zavisno od izvora podataka koji se koriste za elemente vektora Kada vektor sadrži poznate brojeve (kao što su koordinate tačke A) vrednost svakog elementa se unosi direktno Element vektora može biti i matematički izraz koji sadrži prethodno definisane promenljive, brojeve i funkcije Elementi vektora mogu da predstavljaju niz brojeva koji se međusobno razlikuju za konstantnu vrednost (vektor sa konstantnim korakom) U takvim slučajevima, vektor se može formirati odgovarajućom MATLAB-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 razdvajaju razmakom (blanko) ili zarezomVektor kolona: Za generisanje vektora kolone, unese se leva uglasta zagrada [, a zatim se unose elementi razdvojeni znakom tačka-zarez, ili se posle unošenja svakog elementa pritisne Enter;nakon poslednjeg elementa, unese se desna uglasta zagrada ].

Generisanje vektora od datih podataka

Pomoću podataka iz tabele o stanovištvu i koordinata tačke A napraviti vektor vrstu i vektor kolonu

Generisanje vektora sa konstantnim korakom između elemenata (I)

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

Primer

Generisanje vektora sa konstantnim korakom između elemenata (II)

Vektor sa konstantnim korakom između elemenata može se generisati zadavanjem prvog i poslednjeg elementa i ukupnog broja elemenataDa bi se generisao vektor čiji je prvi element xi, poslednji xj, a ukupan broj elemenata n, koristi se komandalinspace pri čemu MATLAB izračunavaodgovarajući korak:ime_promenljive = linspace (xi, xj, n)

Primer

Dvodimenzionalni nizovi (matrice)

Dvodimenzionalan niz (matrica) sadrži brojeve poređane u vrste i kolone Matrice se mogu upotrebiti za skladištenje podataka kao u tabeli Matrice igraju važnu ulogu u linearnoj algebri, a u prirodnim i tehničkim naukama koriste se za opisivanje mnogih fizičkih veličinaKvadratna matrica ima jednak broj vrsta i kolona Na primer, matrica:

⎥⎥⎥

⎢⎢⎢

356183947

je kvadratna matrica 3x3, sa 3 vrste i 3 kolone

Definisanje matrica (I)

Broj vrsta može biti različit od broja kolonaMatrica mxn ima m vrsta i n kolona, pa kažemo da je veličina matrice m puta nMatrica se definiše dodeljivanjem elemenata matrice nekoj promenljivoj Elementi matrice se upisuju, vrsta po vrsta, unutar uglastih zagrada [ ] Prvo se upiše leva zagrada [, zatim elementi prve vrste razdvojeni razmacima ili zarezima Da bi se prešlo na sledeću vrstu, upiše se tačka-zarez, ili pritisne Enter Na kraju poslednje vrste upiše se desna zagrada ]

ime_promenljive = [elementi prve vrste; elementi druge vrste; elementi treće vrste; ...; elementi poslednje vrste]

Definisanje matrica (II)

Elementi matrice mogu biti brojevi ili matematički izrazi koji sadrže brojeve, prethodno definisane promenljive i funkcijeSve vrste moraju imati jednak broj elemenata Ako je element nula, mora se upisati 0Ukoliko se upiše nepotpuna matrica, MATLAB će prikazati poruku o grešci Matrice se mogu dobiti i kao rezultat matematičkih operacija s vektorima i matricama

Vežba: primeri različito definisanih matrica

Vrste matrice kao vektoriVrste matrice se mogu uneti i kao vektori, pri čemu se može koristiti izraz za generisanje vektora sa konstantnim korakom između elemenata ili komanda linspaceU primeru, prve dve vrste su unete kao vektori pomoću notacije za generisanje vektora sa konstantnim korakomizmeđu elemenata, treća vrsta je uneta pomoću komande linspace, 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 specijalnevrednostiKomande zeros(m,n) i ones(m,n) generišumatrice sa m vrsta i n kolona, u kojima su svielementi nule, odnosno jediniceKomanda 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 MATLAB-u

Sve promenljive u MATLAB-u su nizoviSkalar je niz s jednim elementom, vektor je niz s jednom vrstom ili jednom kolonom elemenata, a matrica je niz sa elementima u vrstama i kolonamaPromenljiva (skalar, vektor ili matrica) definisana je kada joj se dodele elementi Veličinu niza nije potrebno unapred definisati (jedan element za skalar, jedna vrsta ili kolona elemenata za vektor, dvodimenzionalni niz elemenata za matricu)Postojeća promenljiva (skalar, vektor ili matrica) može menjati 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žine ili u matricu, a matrici se može promeniti veličina ili se ona može svesti na vektor ili skalar Te promene se obavljaju dodavanjem i brisanjem elemenata

Operator transponovanjaKada se primeni na vektor, operator transponovanja pretvara vektor vrstu u vektor kolonu i obratno Kada se primeni na matricu, pretvara njene vrste u kolone i obratnoOperator transponovanja se primenjuje upisivanjem polunavodnika (') iza promenljive koju treba transponovati

Adresiranje elemenata nizova -vektor

Elementi niza (vektora ili matrice) mogu se adresirati pojedinačno ili u podgrupama To je pogodno kada treba redefinisati samo pojedine elemente, upotrebiti određene elemente u proračunu ili definisati novu promenljivu pomoću podgrupe elemenataAdresu 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že upotrebljavati kao zasebna promenljivaNa primer, može se promeniti vrednost samo jednog elementa vektora dodeljivanjem nove vrednosti određenoj adresi To će se uraditi iskazom vct(k) = vrednostSvaki element se može upotrebljavati kao zasebna 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 pNa primer, ako je data matrica:

⎥⎥⎥

⎢⎢⎢

809132107456113

mat =

onda je mat(1,2)=11, mat(2,3)=10, mat(3,1)=13

Pojedinačni elementi matrice

Kao i kod vektora, vrednostipojedinačnih elemenata matrice se mogu menjati dodeljivanjem novih vrednosti elementimaPojedinačni elementi se mogu upotrebljavati i kao promenljive u matematičkim izrazima i funkcijama

Adresiranje opsega elemenata nizova

Za adresiranje opsega elemenata vektora ili matrice upotrebljava se dvotačka (:) Za vektor:

vct(:) označava sve elemente vektora vct (vektora vrste 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 kolone matrice A A(n,:) označava sve elemente n-te vrstematrice A A(:,m:n) označava sve elemente matrice A od m-te do n-te koloneA(m:n,:) označava sve elemente matrice A od m-te do n-te vrsteA(m:n,p:q) označava elemente matrice A koji su istovremeno u vrstama od m-te do n-te i kolonama od p-te do q-te

Vežba: Upotreba dvotačke u adresiranju matrica

Generisanje novih promenljivih od elemenata vrsta i kolona

Od pojedinačnih elemenata ili određenih vrsta i kolona postojećih promenljivih mogu se generisati nove promenljiveTo se radi tako što se izabrani elementi, vrste i kolone navedu unutar zagrada, kao u primerima

Dodavanje elemenata postojećim promenljivama

Promenljiva definisana kao vektor ili matrica može se menjati dodavanjem elemenataVektoru (matrici s jednom vrstom ili kolonom) se mogu dodavati elementi ili se on može pretvoriti u dvodimenzionalnu matricu Dodavanjem vrste i/ili kolone postojećoj matrici može se dobiti matrica drugačijih dimenzijaElementi se dodaju tako što im se dodele vrednosti ili pridruže postojeće promenljive

Dodavanje elemenata vektoruPostojećim vektorima se dodaju elementi tako što se novim elementima dodele vrednostiNa primer, ako vektor ima 4 elementa, on se može produžiti dodeljivanjem vrednosti elementima 5, 6 itd. Ukoliko vektor ima nelemenata, a nova vrednost se dodeli elementu čija je adresa n+2 ili veća, MATLAB elementima između n-tog elementa i novog elementa dodeljuje nule

Primer: dodavanje elemenata vektoru pridruživanjem postojećih vektora

Dodavanje elemenata matrici

Postojećoj matrici nove vrste i/ili kolone se mogu dodati tako što se dodele vrednosti elementima novih vrsta odnosno kolona Nove vrste i kolone se mogu dodavati i pridruživanjem postojećih promenljivihVeličina dodatih vrsta i kolona mora biti u skladu sa veličinom vrsta i kolona postojeće matrice

Dodeljivanje nove vrednosti elementu čija je adresa izvan dimenzija matrice

Ako matrica ima dimenzije m x n, a nova vrednost je dodeljena elementu čija je adresa izvan dimenzija matrice, MATLAB će povećati dimenzije matrice tako da matrica obuhvati novi element Ostalim dodatim elementima MATLAB dodeljuje nule

Uklanjanje elemenata

Element ili opseg elemenata postojeće matrice se uklanja kada se iza elementa ili opsega elemenata navedu uglaste zagrade bez sadržajaUklanjanjem elemenata skraćuje se vektor, a matrici smanjuje dimenzija

Ugrađene funkcije za obradu nizova (I)MATLAB ima mnogo ugrađenih funkcija (built-in functions) za obradunizova i rad s njimaSve ugrađene funkcije za rad s nizovima opisane su u prozoru sistema za pomoć (Help) U tom prozor treba odabrati „Functions by Category", pa zatim „Mathematics" i potom ,,Arrays and Matrices"

Funkcija Opis Primer

length Vraća broj elemenata vektora A. »A=[5 9 2 4]>>length(A)ans=4

size(A) Vraća dvodimenzionalni vektor vrstu [m,n], pri čemusu m i n dimenzije m x n matrice A.

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

reshape (A, m, n) 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= [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 (II)

Funkcija Opis Primer

diag(v) Kada je v vektor, generiše kvadratnu matricu saelementima v na dijagonali

>>V=[7 4 2];>>A=diag(V)A=

7 0 00 4 00 0 2

diag(A) Kada je A matrica, generiše vektor od elemenataglavne dijagonale matrice A

>>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ću komandi ones i zeros napraviti matricu 4 x 5 u kojoj su prve dve vrste ispunjene nulama, a sledeće dve jedinicama

Primer: Generisanje matrice

Napraviti matricu 6 x 6 u kojoj su dve srednje vrste i dve srednje kolone ispunjene jedinicama, a ostatak nulama

Primer: rad s matricom (I)

Date su matrica A dimenzija 5x6, matrica B dimenzija 3x6, i vektor v sa 9 elemenata

⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=80757065605555504540353030252015105

211815129620171411851916131074181512963171411852

BA

v=[99 98 97 96 95 94 93 92 91]

Primer: rad s matricom (II)

U komandnom prozoru napraviti ta tri niza i zatim, pomoću jedne komande:

zameniti četiri poslednje kolone prve i treće vrste matrice A s prve četiri kolone prve dve vrste matrice Bzameniti poslednje četiri kolone četvrte vrste matrice A elementima od 5 do 8 vektora vzameniti poslednje četiri kolone pete vrste matrice A kolonama od 2 do 5 treće vrste matrice B

Primer: rad s matricom (III)

Samostalan rad (I)Napraviti vektor vrstu od elemenata: 32, 4, 81, e2.5, 63, cos(π/3) i 14.12Napraviti vektor kolonu od elemenata: 55, 14, ln(51), 987, 0 i 5sin(2.5π)Napraviti vektor vrstu u kojem je prvi element 1, poslednji 33, 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 (vektor kolona se može napraviti transponovanjem vektora vrste)Napraviti vektor vrstu sa 15 jednako razmaknutih elemenata od kojih je prvi 7, a poslednji 40Napraviti vektor kolonu sa 12 jednako razmaknutih elemenata od kojih je prvi -1, a poslednji -15

Samostalan rad (II)Napraviti vektor Prvi sa 16 elemenata od kojih je 4 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 četiri elementa vektora Prvi, a druga četiri njegova elementa 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

⎥⎥⎥

⎢⎢⎢

⎡=

1875.0750.0625.0500.0375.0250.0125.00243036424854606672252219161310741

B

Samostalan rad (III)

Napraviti sledeću matricu A:

⎥⎥⎥

⎢⎢⎢

⎡=

94171834503464587112436

A

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 matricu C:

⎥⎥⎥

⎢⎢⎢

⎡=

3528211471512963108642

C

Pomoću matrice C:• Od elemenata treće kolone matrice C, napraviti

vektor kolonu ua sa tri elementa• Od elemenata druge vrste matrice C, napraviti

vektor kolonu ub sa pet elemenata• Od elemenata prve, treće i pete kolone matrice

C, napraviti vektor kolonu uc sa devet elemenata

• 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 3 x 5 u kojoj su prva, druga i peta kolona popunjene nulama, a treća i četvrta kolona popunjene jedinicamaNapraviti matricu 5x7 čija prva vrsta sadrži brojeve 1 2 3 4 5 6 7, druga brojeve 8 9 10 11 12 13 14, treća brojeve od 15 do 21 itd.

Od te matrice napraviti novu matricu B dimenzija 3x4, koja sadrži vrste od 2 do 4 i kolone od 3 do 6 prve 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 susvi elementi 5

Zatim matrici A dodati elemente matrice B tako dase dobije matrica:

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

5500055000001110011100111

A

top related