4. Grafič ke funkčije

Like dokumenter
Programiranje 1 grupno spremanje (zadaci) datoteke

Strukture. Strukturirani (složeni) tip podataka koji definiše korisnik. Razlike u odnosu na niz

1 REALNE FUNKCIJE REALNE VARIJABLE

MINIMARK stampac za industrijsko obelezavanje

Složeni tipovi podataka

PC i multimedija 3. deo: Audio

OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA Interaktivna manipulacija oblikom igra glavnu ulogu u CAD/CAM/CAE sistemima. Programiranje koje kreira

Zadatak 1 strukture (C110) P2: Jedanaesta nedelja Strukture i liste. Strukture na jeziku C (2) Strukture na jeziku C (1)

Uvod u Veb i Internet tehnologije HTML

ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU PROGRAMIRANJE 2 MATERIJALI ZA PRIPREMU ISPITA. verzija:

Kako dostaviti logo. USBnet. Powered by

Objektno orijentisano programiranje 2. Tipovi podataka u C#

Kartlegging av leseferdighet Trinn 2 og 3 på bosnisk

Izmena i dopuna konkursne dokumentacije

ALUMINIJSKE VODILICE ZA ODJELJIVANJE PROSTORA

1. DHB-E 18/21/24 Sli art ELEKTRONIČKI PROTOČNI GRIJAČ VODE

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 04. Zvonimir Bujanović Slaven Kožić Vinko Petričević

do minimalno 8 kreativnih objava mjesečno Povlaštena cijena nakon završetka akcije: 900,00 kn

Primena računara u fizičkoj hemiji. Profesor: Miloš Mojović Asistent: Aleksandar Ignjatović

Kapittel september Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 7.

Neprekidne funkcije nestandardni pristup

Riješeni zadaci: Funkcije

Uvod u web dizajn i obrada slike

1 - Prvi deo upitnika

1. 0BLINEARNE STRUKTURE PODATAKA

MODIFIKACIJE METODA MATEMATIČKOG PROGRAMIRANJA I PRIMENE

/* Adresu promenjive x zapamticemo u novoj promeljivoj. Nova promenljiva je tipa pokazivaca na int (int*) */ int* px;

ITGK - H2010, Matlab. Repetisjon

Matematikk Øvingsoppgaver i numerikk leksjon 2 Funksjoner og plotting

L A TEX Sage i SageTEX

Ord og begreper. Norsk Morsmål: Tegning (hvis aktuelt)

SINUS M -VARIABLE FREQUENCY DRIVE- UPUTSTVO ZA INSTALIRANJE I PROGRAMIRANJE

Topografske karte. Dr. sc. Aleksandar Toskić, izv. prof.

PROJEKTOVANJE SOFTVERA

nastri adesivi adhesive tape collection

I kunstverdenen er glitch art en relativ ny kunstform som er basert på de uventede resultatene av digitale feil. - WIKIPEDIA

ZADACI ZA KVALIFIKACIONI ISPIT IZ HEMIJE. 1. Napišite elektronsku konfiguraciju broma, čiji je atomski broj Z= 35.

Noen MATLAB-koder. 1 Plotte en vanlig funksjon. Fredrik Meyer. 23. april 2013

Eksamen FSP5822/PSP5514 Bosnisk nivå II Elevar og privatistar / Elever og privatister. Nynorsk/Bokmål

MATLAB for STK1100. Matematisk institutt Univeristetet i Oslo Januar Enkel generering av stokastiske variabler

BOSANSKI LCD TV UPUTSTVA 0516MTH-VT-VT

MATLAB matrični laboratorij Interaktivni alat (kalkulator), programski jezik, grafički procesor

SECURIT table za pisanje kredom TABLE STONE ZA PISANJE KREDOM ILI KREDA MARKEROM...

Matematičke metode u kemiji Numeričke metode u kemiji

Beskrivelse for hvordan en kan digitalisere og importere musikk inn i Variations på TEST server EINER.UIB.NO (for installasjonen 17.

Designed Sounds - File Name Size

Korisnički priručnik. Modena E501

Matlab-intro MUS4218

BOSANSKI LCD TV UPUTSTVA 0716MTH-VT-VT

Matematikk Øvingsoppgaver i numerikk leksjon 3 Funksjoner og plotting

VOLKSWAGEN Golf V (1K) V TDi (AZV) Motor -> Priručnik za popravak -> Remen razvodnog mehanizma: uklanjanje/postavljanje

1. Mikrokontroleri. Sl.1.1 Detaljni blok dijagram mikroracunarskog sistema

Aksijalno pritisnuti elementi

TDT4105 Informasjonsteknologi, grunnkurs MatLab: Filbehandling - load, save, type - fopen, fgetl, feof, fprintf, fclose

Tru64: Uvod - alati i naredbe. Dinko Korunić, InfoMAR d.o.o. v1.2, travanj 2006.

TMA Kræsjkurs i Matlab. Oppgavesett 1/3

Troškovnik za nabavu i ugradnju prometne opreme i signalizacije

1.Raster(bitmap) versus vektorer

Mašina za sušenje Priručnik za korisnika Tørretumbler Brugermanualen Tørketrommel Brukerhåndboken DCY 7202 YW _SB/

Binærfiler versus tekstfiler

VERTIKALNA POLARIZACIJA

DO ŽIV LJA JI HAK L BE RI JA FI NA

M-BOX INTELIGHT Inteligentno osvetljenje

MONTAŽA I SERVISIRANJE RAUNARA

SETNINGER OG SETNINGSLEDD REČENICE I DELOVI REČENICE

Univerzitet u Nišu Elektronski fakultet Katedra za Elektroniku SEMINARSKI RAD

Neko kao ti. Sara Desen. Prevela Sandra Nešović

ZBIRKA PRAKTIČNIH RADOVA IZ KOMPLETA DIJELOVA MT- radio

Bildehåndtering Geir A. Myrestrand Styremedlem og webmaster for Slekt og Data Rogaland,

Control Engineering. MathScript. Hans-Petter Halvorsen

Ulike bildeformater og komprimering. Ferdighet 7. trinn Produsere og bearbeide

Grunnleggende elementer i Matlab

2018 AKCIJA TRAJE DO:

Hilja du ču de snih sunac a

BAŠTENSKI PROGRAM. SMM RODA COMPANY d.o.o.

FRACTAL d.o.o. Elektrotehnički i informatički inžinjering i konzalting Kupreška 37, SPLIT. PowerCAD 4.1

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

Bluetooth autoradio MEX-BT3800U. Uputstvo za upotrebu (1) Za isključenje demonstracionog (DEMO) prikaza, pogledajte str. 7.

UPUTSTVO MSV-F2 DN DN DN Slika 2. Slika 3. Slika 1. Slika 5 Slika 6. Slika 4 Slika 7. VI.B1.B4.45 Danfoss 02/2007 1

PRIRUČNIK O UPOTREBI SLOBODNOG SOFTVERA U UMETNIČKOM MUZIČKOM RADU

Prije uporabe Sigurnost...1 Važne napomene...1. Tablet FISKAL1... 2

HRVATSKI. LCD televizor UPUTE 0516MTH-VT-VT

HRVATSKI. LCD televizor UPUTE 0716MTH-VT-VT

BYFE/EMFE 1000, 2012/2013. Numerikkoppgaver uke 34

web:

MAT-INF 2360: Obligatorisk oppgave 1

56. TAKMIČENJE MLADIH MATEMATIČARA BOSNE I HERCEGOVINE

Rasim_1:knjiga B :54 Page 1

3.1.1 Eksempel: "Student's" t-fordeling Lognormal-fordeling... 7

Uvod u web programiranje: Uvod u HTML

FIZIČKO-TEHNIČKA MERENJA: MERENJE POLOŽAJA, POMERAJA I NIVOA

Øving 13. Et diffraksjonsgitter med N meget smale spalter og spalteavstand d resulterer i en intensitetsfordeling. I = I 0, φ = πdsin(θ)/λ

Testlig og binær form

11. september Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 6 + en hel del ekstra.

TDT4105 Informasjonsteknologi, grunnkurs

Oppgave 4. Med utgangspunkt i eksemplet gitt i oppgaveteksten er veien ikke lang til følgende kode i Matlab/Octave:

Noen hint for å gjøre Matlabøving i TMA4105

Projekat EUROWEB+ Ovo je program namenjem isključivo razmeni, a ne celokupnim studijama.

OLE for Process Control

Činjenice o hepatitisu A, B i C i o tome kako izbjeći zarazu

Transkript:

4. Grafič ke funkčije Svaki grafik možemo posmatrati kao prikaz numeričkih vrednosti. Poreklo ovih vrednosti, međutim, diktira način na koji se one koriste ili generišu. U vedini slučajeva, izvor podataka su posmatrane vrednosti ili diskretne vrednosti nepoznate funkcije. U tom slučaju, uglavnom želimo da prikažemo određeni set tačaka u ravni ili prostoru i to pomodu vizuelnih informacija kao što su boje ili linije za povezivanje tačaka. 4.1 Grafici dvodimenzionalnih podataka Za crtanje dvodimenzionalnih grafika koriste se sledede naredbe: plot, bar, stairs i stem. Naredba plot spaja susedne tačke grafičkog prikaza ravnom linijom. Bar daje trakasti grafikon, dok se kod stairs prikaza, odn stepenastog grafikona dobija prikaz sličan ivičnom obrisu trakastog prikaza. Stem način prikazivanja svaki podatak prikazuje vertikalnom linijom čija dužina odgovara iznosu podatka, a na vrhu linije se nalazi kružid (grafikoni diskretnih podataka). Primer 1: Crtanje grafika korišćenjem funkcije stem >> X = linspace(0,6*pi,18); >> Y= -X.*sin(X); >> stem(x,y),title('crtanje grafika pomocu funkcije stem'),ylabel('y') 1

Primer 2: Crtanje grafika pomoću funkcije stairs >> X = linspace(0,6*pi,18); >> Y= -X.*sin(X); >> stairs(x,y),title('crtanje grafika pomocu funkcije stairs'),ylabel('y') Primer 3: Crtanje grafika pomoću funkcije bar >> X = linspace(0,6*pi,18); >> Y= -X.*sin(X); >> bar(x,y),title('crtanje grafika pomocu funkcije bar'),ylabel('y') 2

4.1.1 Funkcija plot U ovom poglavlju de detaljno biti opisana naredba plot. Sintaksa naredbe plot je: plot(x,y, opcije ). Ukoliko se vektor x i string opcija izostave, tada se prikazuju elementi vektora y u zavisnosti od njihovog rednog broja. Ako se navedu i vektor x i y, tada elementi vektora čine niz uređenih parova tačaka, pri čemu vektori x i y moraju imati isti broj elemenata. Ako je y matrica, koja ima isti broj vrsta kao vektor x, naredba plot crta po jednu krivu za svaku kolonu vektora y. Opcijama se određuje boja i tip linije slededim oznakama datim u Tabeli 1. OZNAKA BOJA OZNAKA TIP LINIJE y žuta - puna linija m ljubičasta : tačkasta linija c svetlo plava -. tačka crta linija r crvena -- isprekidana linija g b w k zelena plava bela crna Tabela 1: Oznake za određivanje boje i tipa linije u grafičkom prikazu Ostale opcije mogu se pronadi primenom funkcije help plot. Naredba plot otvara novi grafički prozor i u njemu crta grafik. Ako je grafički prozor ved postojao, grafik se crta u njemu. Crtanje na logaritamskoj skali se postiže primenom funkcija semilogx, semilogy ili loglog umesto funkcije plot, korišdenjem iste sintakse. Funkcija semilogx daje logaritamsku osu apscise i linearnu ordinatu, funkcija semilogy daje prikaz na logaritamskoj ordinati i linearnoj apscisi, dok funkcija loglog daje logaritamski prikaz na obe ose. Otvaranje novog grafičkog prozora postiže se funkcijom figure, dok naredba figure(broj) aktivira novi grafički prozor gde je broj redni broj prozora. 3

Komanda hold omogudava da se na postojedi dijagram doda novi dijagram. Ako se zada komanda hold on, MATLAB ne uklanja postojedi dijagram, ved na njega dodaje nove podatke, normalizujudi ga ako je potrebno. Primer 4: Cenzus U Matlab-u postoje podaci o procentu glasova birača izašlih na izbore koji mora da ostvari svaka izborna lista da bi dobila poslaničke mandate u Parlamentu (cenzus), konkretno za Ameriku u periodu od 1790 do 1990. godine. Ove podatke demo učitati i predstaviti grafički na slededi način: >> load census >> plot (cdate,pop) Primetimo da postoje dve promenljive koje su formirane prilikom učitavanja cenzusa, a to su promenljive cdate i pop. Ukoliko pristupimo ovim promenljivama, videdemo da su u promenljivoj cdate sačuvane godine od 1790 do 1990, a u promenljivoj pop procenti glasova birača po tim godinama. Funkcija plot povezuje tačke koje su definisane vrednostima u dva odgovarajuda vektora. Rezultat primene funkcije plot na podatke cenzus je prikazan na slici: 250 200 150 100 50 0 1750 1800 1850 1900 1950 2000 Možemo promeniti tip linije na slededi način: >> plot(cdate,pop,'ro'); 4

250 200 150 100 50 0 1750 1800 1850 1900 1950 2000 >> plot(cdate,pop,'k:'); 250 200 150 100 50 0 1750 1800 1850 1900 1950 2000 >> plot(cdate,pop,'ys-'); 250 200 150 100 50 0 1750 1800 1850 1900 1950 2000 Ovaj set podataka bolje izgleda ako je y-osa logaritamski skalirana. Za to koristimo funkciju semilogy. 5

>> semilogy(cdate,pop,'p-'); 10 3 10 2 10 1 10 0 1750 1800 1850 1900 1950 2000 Ukoliko želimo da dodamo krivu na ved postojede ose, koristimo naredbu hold on. Na poslednjoj slici vidimo da podaci vrlo približno reprezentuju eksponencijalni trend. Možemo dodati eksponencijalnu ekstrapolaciju od 1900. godine na slededi način: >> t=1900:10:2030; >> hold on >> semilogy(t,exp(-20.44+0.01306*t),'k--') Pomodu ovih naredbi dobijamo slededi grafik: 10 3 10 2 10 1 10 0 1750 1800 1850 1900 1950 2000 2050 Ukoliko želimo da na grafiku nema slobodnog prostora, ved da ose prate krivu, možemo koristiti naredbu axis tight da bismo napravili najmanji mogudi ram oko krive. Na taj način dobijamo slededi grafik: 6

10 2 10 1 1800 1850 1900 1950 2000 4.1.2 Funkcija subplot Crtanje više koordinatnih sistema u istom grafičkom prozoru postiže se naredbom subplot. Sintaksa naredbe subplot je oblika: subplot(n,m,i),plot( ). Komanda subplot deli grafički prozor u matricu, tj. na nxm malih oblasti, a zatim bira i-tu oblast za tekudi prozor. Primer 5: Korišćenje funkcije subplot >> x = linspace(0,2*pi,50); >> y1 = 2.5*cos(x); >> y2 = 3.5*sin(x); >> subplot (2,1,1) >> plot(x,y1) >> subplot(2,1,2) >> plot(x,y2) Prva naredba subplot određuje da de se koordinatni sistemi postaviti u 2 reda i u jednoj koloni i da je aktivan prvi od njih. U taj koordinatni sistem se ucrtava kriva određena vektorima x i y1. Druga subplot naredba određuje da je aktivan drugi koordinatni sistem (koordinatni sistem u drugom redu) i u njega se crta kriva određena vektorima x i y2. 7

4.1.3 Funkcije za označavanje grafičkih prikaza Grafičkim prikazima u MATLAB-u mogude je dodeliti naslov, oznake osa, tekst unutar grafičkog prikaza i legendu pomodu slededih naredbi: title( string ) upisuje specificiran string na mesto naslova, xlabel( string ) upisuje specificiran string na mesto oznake x ose, ylabel( string ) upisuje specificiran string na mesto oznake y ose, text( string ) omogudava upis teksta na mesto koje se određuje zadavanjem koordinata, legend( str1, str2, str3 ) upisuje se legenda i to tako da se uz tip linije prve krive ispisuje str1, druge krive str2 i trede krive str3. Primer 6: Primer u kojem se koriste funkcije legend, box, grid, labels i title x = -2*pi:0.4:2*pi; y1 = sin(x); y2 = y1.^2./x; plot (x,y1,':*',x,y2,'s--') xlabel('x'), ylabel('y') title ('Primer u kojem se koriste funkcije legend, box, grid, labels i title') grid on; box on; legend ('y1(x)','y2(x)') text(-4,0.7,'sin(x)') % postavlja tekst sin(x) u <-4,0.7> text(5,0.2,'sin(x)/x') % postavlja tekst sin(x)/x u <5,0.2> 8

Primer 7: Grafičko rešavanje jednačina ezplot('x^2'); axis([-3 3-0.5 10]);hold on; ezplot('x+2*y-3=0'); xlabel('x-axis');ylabel('y-axis'); grid on; [x,y] = ginput 9

Pomodu kursora obeležavamo tačke preseka dve krive. Rešenje se ispisuje u Komandnom prozoru. Komanda close zatvara tekudi grafički prozor. 4.2 Trodimenzionalni grafici Za trodimenzionalni prikaz potrebno je definisati dva vektora dimenzija nx1 i mx1 i jednu matricu dimenzija nxm. Na taj način se dobija skup tačaka određenih uređenim trojkama. Rezultat prikaza je površina u trodimenzionalnom koordinatnom sistemu, koja je za svaku kombinaciju tačaka iz x-y ravni određenih vektorima x i y definisana vrednošdu na z osi definisanom matricom z. U Matlab-u postoje različiti pristupi za prikazivanje podataka u tri dimenzije, kao što su: plot3, mesh, waterfall, surf, contour, slice, ribbon, stem3, sphere, cylinder i druge. Primer 8: Primena funkcije plot3 Ova funkcija crta linije i tačke u 3D prostoru. 10

plot3(x,y,z) pri čemu su x, y i z tri vektora iste dužine, crta u 3D prostoru tačke čije su koordinate elementi vektora x, y i z. t=linspace(0,10*pi); plot3(sin(t),cos(t),t) xlabel('sin(t)') ylabel('cos(t)') zlabel('t') grid on Primer 9: Primena funkcije mesh i surf Komande mesh i surf formiraju 3D površinske grafike podataka matrice. >> d=[23 56 78;12 45 78;34 67 90] d = 11

23 56 78 12 45 78 34 67 90 >> mesh(d) >> surf(d) subplot(1,2,1) [x,y,z] = sphere; surf(x,y,z), title('surf') axis equal subplot(1,2,2) mesh(x,y,z),title('mesh') axis equal 12

Primer 10: Primena funkcije waterfall >> [x,y,z]=peaks; >> waterfall(x,y,z),title('waterfall') 13

Primer 11: Primena funkcije contour >> [x,y,z]=peaks; >> contour(x,y,z),title('contour') 14

5. UC ITAVANJE I ISPISIVANJE PODATAKA U MATLAB-U MATLAB može da učitava i ispisuje sledede tipove podataka: Binarne podatke Tekstualne podatke Grafičke podatke Audio i audio/video podatke BINARNI PODACI Korišdenjem funkcija save i load, mogu se sačuvati podaci iz Matlab Workspace-a na disk, a zatim se kasnije ponovo mogu učitati u Matlab. TEKSTUALNI PODACI U tekstualnom formatu, vrednosti podataka su ASCII (American Standard Code for Information Interchange) kodovi koji predstavljaju slovne i numeričke karaktere. ASCII tekstualni podaci se mogu videti u tekst-editoru. GRAFIČKI PODACI Matlab podržava mnoge standardne grafičke formate, kao što su: TIFF (Tagged Image File Format), GIF (Graphics Interchange Format), JPEG (Joint Photographic Expert Group) i PNG (Portable Network Graphics). AUDIO I AUDIO/VIDEO PODACI Matlab obezbeđuje funkcije koje omogudavaju interakciju sa slededim tipovima audio i audio/video fajlova: NeXT/Sun SPARC station sound Microsoft WAVE sound Audio/Video Interleaved (AVI) Sound devices compatible with Microsoft Windows Audio player and recorder objects Linear audio signals PODACI SMEŠTENI U TABELE Matlab omogudava učitavanje i ispisivanje podataka smeštenih u Excel tabele i Lotus 123 tabele. 15

5.1. ISPISIVANJE I UČITAVANJE PODATAKA U MAT-FAJLOVE MAT-fajlovi su binarni Matlab fajlovi sa zapisom duple tačnosti. Ovi fajlovi se mogu napraviti na jednom računaru i kasnije se mogu pročitati uz pomod Matlaba na drugom računaru u drugom formatu, u onolikoj tačnosti i opsegu koliko drugi format dozvoljava. 5.1.1 Korišćenje funkcije save Funkciju save koristimo kada želimo da sačuvamo promenljive koje smo formirali u Workspace-u, u obliku binarnog ili ASCII fajla. Na taj način mogude je sačuvati sve promenljive iz Workpace-a koristedi jednu jedinu operaciju (ukoliko ne navedete ime fajla, Matlab koristi ime matlab.mat): save filename Ukoliko na slededi način zapišete naredbu, sačuvadete samo one promenljive koje odredite: save filename var1 var2... varn Možemo koristiti i znak (*) uz ime promenljive ako želimo da sačuvamo samo one promenljive čija imena odgovaraju navedenom obrascu. Na primer, slededa komanda de sačuvati sve promenljive čija imena počinju sa str: >> str1=[1 2 3]; >> str_o=267; >> string='proba'; >> save Saving to: matlab.mat >> save promenljive >> save prva str1 >> save str-promenljive str* >> whos -file str-promenljive Name Size Bytes Class Attributes str1 1x3 24 double str_o 1x1 8 double string 1x5 10 char save strinfo str* 16

Ako želimo da sačuvamo Matlab strukturu, postoji više mogudnosti: da sačuvamo celu strukturu, da sačuvamo svako polje strukture kao posebnu promenljivu u MAT.fajlu ili da sačuvamo određena polja kao zasebne promenljive. Na primer, ako imamo strukturu S: S.a = 12.7; S.b={[4 5; 6 7]}; S.c= Hello! sa standardnom naredbom: save newstruct.mat S sačuvademo celu strukturu u obliku strukture u fajlu newstruct.mat. Ako želimo da sačuvamo pojedinačna polja strukture, pisademo: save newstruct.mat struct S; Ako želimo da sačuvamo samo određena polja strukture, pisademo: save newstruct.mat -struct S a c; >> S = struct('a',12.7, 'b', [4 5; 6 7], 'c', 'Hello'); >> save newstruct.mat S >> whos -file newstruct Name Size Bytes Class Attributes S 1x1 578 struct >> save newstruct.mat -struct S >> whos -file newstruct Name Size Bytes Class Attributes a 1x1 8 double b 2x2 32 double c 1x5 10 char >> save newstruct.mat -struct S a c; >> whos -file newstruct Name Size Bytes Class Attributes a 1x1 8 double 17

c 1x5 10 char Ukoliko želite da dodate nove promenljive ved postojedim promenljivama koje su sačuvane u nekom MAT-fajlu, koristite slededu naredbu: save append. Ovom naredbom Matlab upisuje promenljivu u MAT.fajl i to tako da, ukoliko ta promenljiva ved postoji, on upisuje novu vrednost u tu promenljivu, a ukoliko takva promenljiva ne postoji u MAT-fajlu, Matlab dodaje tu promenljivu i upisuje njenu vrednost iz Workspace-a. 5.1.2 Korišćenje funkcije load Funkciju load koristimo kada želimo da učitamo promenljive iz binarnog ili ASCII fajla u Workspace. Na ovaj način možemo učitati sve promenljive jednom operacijom (ukoliko ne navedemo ime fajla, Matlab učitava iz fajla matlab.mat): load filename Možemo učitati samo određene promenljive slededom naredbom: load filename var1 var2 varn Ili, kao i u slučaju funkcije save, možemo koristiti znak (*) pored imena promenljive i na taj način učitati samo promenljive čija imena počinju tim slovima: load strinfo str* Treba voditi računa o tome da de, ukoliko učitavamo promenljivu, a u Workspace-u ved postoji neka promenljiva sa istim imenom, Matlab upisati novu vrednost u tu promenljivu. UČITAVANJE U STRUKTURU Da bismo učitali podatke iz MAT-fajla u Matlab strukturu, moramo u komandi load navesti izlaznu promenljivu. U slededem primeru učitavamo podatke iz mydata.mat u polja strukture S: >> S = load('newstruct.mat') S = a: 12.7000 c: 'Hello' >> whos S Name Size Bytes Class Attributes 18

S 1x1 370 struct Osnove biomedicinskog softvera UČITAVANJE BINARNIH PODATAKA Kao što smo rekli, MAT-fajlovi su binarni Matlab fajlovi sa duplom tačnošdu koji se formiraju pomodu funkcije save, a koji se čitaju pomodu funkcije load. MAT-fajlovi mogu sadržati komprimovane i nekomprimovane podatke ili oba tipa podataka. Matlab raspoznaje komprimovane podatke po oznakama koje dodaje svakoj promenljivoj pri izvršavanju naredbe save. Kada učitava komprimovane podatke, Matlab automatski vrši dekompresiju odgovarajudih podataka. 5.2 ISPISIVANJE I UČITAVANJE TEKSTUALIH PODATAKA 5.2.1 Učitavanje tekstualnih podataka Da bismo učitali tekstualne podatke sa komandne linije ili u M-fajlu, moramo koristiti jednu od funkcija za učitavanje podataka u Matlabu. Izbor funkcije koju demo koristiti vršimo na osnovu forme podataka. Tekstualni podaci moraju biti formatirani po uniformnom obrascu redova i kolona, i to korišdenjem tab-a, zareza, tačke-zareza ili nekog drugog karaktera koji razdvaja svaki element fajla. Pojedinačni elementi mogu biti slova ili brojevi ili kombinacija slova i brojeva. Da biste videli u kom formatu su zapisani vaši podaci, otvorite fajl u tekst-editoru. Nakon što ste utvrdili format podataka, u Tabeli 5.2.1 pronađite uzorak koji najviše odgovara formatu vaših podataka i tada dete znati koju funkciju treba da koristite za učitavanje podataka. FUNKCIJA TIP PODATAKA ZA ODVAJANJE ELEMENATA FAJLA KORISTE SE: csvread numerički podaci samo zarezi dmlread numerički podaci bilo koji karakter fscanf slovni i numerički podaci bilo koji karakter load numerički podaci samo razmak textread slovni i numerički podaci bilo koji karakter 19

textscan slovni i numerički podaci bilo koji karakter Tabela 5.2.1 Funkcije za učitavanje podataka UČITAVANJE NUMERIČKIH TEKSTUALNIH PODATAKA Ukoliko podaci sadrže samo numeričke elemente, može se koristiti više funkcija za učitavanje koje postoje u Matlabu, u zavisnosti od toga kako su elementi razdvojeni u fajlu. Ako su elementi fajla podeljeni u vrste i pri tome, svaka vrsta ima isti broj elemenata, najbolje je koristiti naredbu load. Na primer, neka se u fajlu my_data.txt nalaze podaci koji su raspoređeni u dve vrste brojeva koji su međusobno razdvojeni razmakom: 1 2 3 4 5 6 7 8 9 10 Kada koristimo naredbu load, ona učitava podatke i formira promenljivu sa istim imenom, samo bez ekstenzije, u Workspace-u. Ako želimo da dodelimo neko drugo ime promenljivoj u Workspace-u u koju učitavamo podatke iz my_data.txt napisademo sledede: A=load('my_data.txt'); UČITAVANJE ASCII PODATAKA KOJI SU ODVOJENI NEKIM KARAKTEROM U FAJLU Ukoliko su podaci u fajlu odvojeni nekim karakterom, a da to nije razmak, postoji više funkcija koje možemo koristiti za učitavanje. Najjednostavnija je dlmread. Na primer, uzmimo slededi fajl ph.dat čiji je sadržaj razdvojen sa znakom ' ; ' : 7.2; 4.3; 2.3;5.5 2.3; 7.6; 1.2; 8.7 Da bismo učitali ceo sadržaj ovog fajla u niz A, ukucademo: A=dlmread( ' ph.dat ', ' ; ' ); 20

gde smo kao drugi argument funkcije dlmread naveli karakter kojim su podaci odvojeni '';''. Funkcija dlmread ignoriše razmake između elemenata u fajlu, tako da i ukoliko napravimo vedi razmak između elemenata, ova funkcija isto funkcioniše: 7.2; 4.3; 2.3;5.5 2.3; 7.6 ; 1.2; 8.7 UČITAVANJE NUMERIČKIH PODATAKA KOJI SADRŽE TEKST U ZAGLAVLJU Za učitavanje ovakvih podataka koristi se funkcija textscan, pri čemu u headerlinesparametru možemo da navedemo koliko linija u zaglavlju funkcija treba da ignoriše. Na primer, neka fajl ocene.dat sadrži formatirane brojčane podatke i jedan red teksta u zaglavlju: Ocena1 Ocena2 Ocena3 7 6 9 9 8 7 10 7 8 Da bismo učitali ove podatke, prvo moramo otvoriti fajl, a zatim korišdenjem funkcije textscan pročitati sadržaj i na kraju zatvoriti fajl: fid = fopen (' ocene.dat ',' r '); grades = textscan( fid, ' %f %f %f ', 3, ' headerlines ', 1 ); fclose(fid); UČITAVANJE KOMBINACIJE SLOVNIH I NUMERIČKIH PODATAKA Ukoliko podaci predstavljaju kombinaciju slovnih i numeričkih ASCII podataka, za njihovo učitavanje koristimo ili funkciju textscan ili funkciju textread. Funkcija textscan vrada izlaz u nizu, a textread u odvojenim promenljivima i daje mogudnost određivanja klase svake promenljive. Na primer, neka fajl mydata.dat sadrži kombinaciju slovnih i numeričkih podataka: 21

Ivana Tip1 13.25 46 Da Jovan Tip2 34.87 55 Da Marko Tip3 68.89 24 Ne Da bismo učitali ceo sadržaj fajla mydata.dat u Workspace, moramo navesti ime fajla i string formata kao argumente u funkciji textread. U stringu formata, treba navesti specifikatore konverzije koji definišu kako da interpretiramo svaki pojedinačni podatak. Na primer, stavidemo %s za podatke tipa string, %f za podatke sa pokretnom tačkom, itd. Za svaki specifikator konverzije u stringu formata, mora se navesti posebna izlazna promenljiva. Broj izlaznih promenljivih odgovara broju specifikatora konverzije u stringu formata. U ovom primeru, textread čita iz fajla mydata.dat, primenjujudi format koji je naveden u stringu formata na svaki red u fajlu dok ne stigne do EOF (end of file). [ names, types, x, y, answer] = textread ( mydata.dat, %s %s %f %d %s, 3); Ukoliko podaci u fajlu nisu razdvojeni razmakom, ved nekim drugim karakterom, mora se taj karakter navesti kao parametar u funkciji textread. Na primer, ako su podaci razdvojeni sa ;, nepisademo naredbu textread u slededem obliku: [ names, types, x, y, answer] = textread ( mydata.dat, %s %s %f %d %s, delimiter, ; ); 5.2.2 Ispisivanje tekstualnih podataka Matlab ima ugrađene funkcije koje mogu da ispisuju, na primer, matricu kao tekst-fajl u kojem su vrste i kolone predstavljene kao brojne vrednosti razdvojene razmakom. Izbor funkcije koju demo koristiti zavisi od količine i formata podataka koje želimo da ispišemo. Funkcije koje se koriste za ispisivanje podataka navedene su u Tabeli 1.2.2. FUNKCIJA TIP PODATAKA ZA ODVAJANJE ELEMENATA FAJLA KORISTE SE: csvwrite numerički podaci samo zarez diary numerički podaci ili niz samo razmak dlmwrite numerički podaci bilo koji karakter fprintf slovni i numerički podaci bilo koji karakter save numerički podaci tab i razmak Tabela 5.2.2. Funkcije za ispisivanje podataka 22

ISPISIVANJE FAJLOVA SA RAZDVOJENIM ASCII PODACIMA Da bismo ispisali niz kao fajl sa razdvojenim ASCII podacima, možemo koristiti ili funkciju save u kojoj demo navesti ASCII kvalifikator, a možemo koristiti i funkciju dlmwrite. Funkcija save je laka za korišdenje, dok nam funkcija dlmwrite daje mogudnost da navedemo željeni karakter za odvajanje elemenata u fajlu kao i mogudnost da ispišemo podskup niza tako što demo odrediti opseg vrednosti koje želimo da ispišemo. KORIŠDENJE FUNKCIJE save Ako želimo da ispišemo niz A, A=[1 2 3 4 ; 5 6 7 8]; koristidemo funkciju save na slededi način: save my_data.out A -ASCII Ako otvorite ovaj fajl u tekst-editoru, videdete da izgleda ovako: 1.0000000e+00 2.0000000e+00 3.0000000e+00 4.0000000e+00 5.0000000e+00 6.0000000e+00 7.0000000e+00 8.0000000e+00 Funkcija save koristi kao razdvajač razmak ukoliko se ne specificira neki drugi karakter kojim želimo da odvojimo elemente u fajlu. Ako koristimo funkciju save da ispišemo niz slovnih karaktera u ASCII fajl, ona de ispisati ASCII-ekvivalent karaktera u fajl. Ako na primer, napišemo string hello, funkcija save de u fajl ispisati vrednosti: 1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02 KORIŠDENJE FUNKCIJE dlmwrite Ako želite da ispišete niz u ASCII formatu i pri tome odredite razdvajač koji de se koristiti u fajlu, koristite funkciju dlmwrite. Na primer, da bismo ispisali niz A: A=[1 2 3 4; 5 6 7 8]; kao fajl sa ASCII podacima koji koristi ; kao razdvajač elemenata fajla, koristidemo slededu naredbu: dlmwrite( my_data.out, A, ; ); 23

Ako pogledate formirani fajl u tekst-editoru, videdete da izgleda ovako: 1;2;3;4 5;6;7;8 Primetimo da funkcija ovako napisana ne dodaje razdvajače na kraju redova. Ukoliko ne navedemo razdvajač koji želimo, funkcija dlmwrite koristi zarez. Možemo navesti razmak ( ) ili ako navedemo prazno, ( ), između navodnika, nede biti razdvajanja elemenata fajla. KORIŠDENJE FUNKCIJE diary ZA ISPISIVANJE PODATAKA Funkcija diary se koristi kada želimo da ispišemo male numeričke nizove. Ova funkcija pravi kopiju Matlab sesije na disku. Na primer, ako u Workspace-u postoji niz A: A=[1 2 3 4; 5 6 7 8];. Da bismo ispisali ovaj niz pomodu funkcije diary, izvršidemo sledede naredbe u Matlab promptu: 1. Uključiti funkciju diary i dodeliti ime fajlu koji funkcija diary formira: diary my_data.out 2. Prikazati sadržaj niza koji želimo da ispišemo: A = 1 2 3 4 5 6 7 8 3. Isključiti funkciju diary: diary off Funkcija diary pravi fajl my_data.out i snima sve naredbe koje su izvršene u Matlab sesiji sve dok je ne isključimo. 4. Otvoriti formirani fajl my_data.out u tekst-editoru i obrisati višak teksta, s obzirom da de u fajlu biti ispisani i nepotrebni podaci, kao što je prikazano ispod: A 24

A = 1 2 3 4 5 6 7 8 diary off 5.3 Rad sa grafičkim podacima Ukoliko imamo fajl standardnog grafičkog formata, koristimo funkciju imfinfo da bismo dobili informaciju o sadržaju tog fajla. Funkcija imfinfo vrada kao rezultat strukturu koja sadrži informaciju o fajlu. Polja u strukturi variraju u zavisnosti od formata fajla, ali gotovo uvek funkcija vrada neke osnovne informacije uključujudi ime fajla, poslednji datum modifikacije, veličinu fajla i format fajla. Slededi primer ilustruje rad funkcije imfinfo za slučaj fajla JPEG formata: >> info = imfinfo('ngc6543a.jpg') info = Filename: '/Applications/MATLAB_R2009a/MATLAB_R2009b.app/toolbox/matlab/demos/ngc6543a.jp g' FileModDate: '01-Oct-1996 22:19:44' FileSize: 27387 Format: 'jpg' FormatVersion: '' Width: 600 Height: 650 BitDepth: 24 ColorType: 'truecolor' FormatSignature: '' NumberOfSamples: 3 CodingMethod: 'Huffman' CodingProcess: 'Sequential' Comment: {[1x69 char]} 25

5.3.1 Učitavanje grafičkih podataka Za učitavanje grafičkog fajla u Workspace koristi se funkcija imread. Koristedi ovu funkciju, možemo učitati podatke slededih formata: TIFF, GIF, JPEG i PNG. Slededi primer prikazuje učitavanje slike JPEG formata u Matlab Workspace u promenljivu I: I=imread('ngc6543a.jpg'); Funkcija imread učitava sliku u Workspace u vidu multidimenzionalnog niza klase uint8. Dimenzije niza zavise od formata podatka. Na primer, imread koristi tri dimenzije za predstavljanje RGB slika. >> whos I Name Size Bytes Class I 650x600x3 1170000 uint8 5.3.2 Ispisivanje grafičkih podataka Za ispisivanje grafičkih podataka iz Matlab Workspace-a, u nekom standardnom grafičkom formatu, koristimo funkciju imwrite. Korišdenjem ove funkcije, možemo ispisati podatke u formatima kao što su: TIFF, JPEG i PNG. Slededi primer ispisuje multidimenzionalni niz podatka I iz Matlab Workspace-a u fajl u TIFF formatu. Klasa izlazne slike koja se upisuje u fajl zavisi od specificiranog formata. imwrite(i, 'my_graphics_file.tif','tif'); 5.4 Rad sa audio/video podacima Matlab uključuje nekoliko funkcija pomodu kojih možemo dobiti informacije o fajlovima koji sadrže audio podatke, video podatke ili oba navedena tipa podataka. Neke od tih funkcija rade samo sa određenim formatima. Jedna od funkcija je mmfileinfo, koja može prikupiti informacije o mnogim formatima fajlova. Ova funkcija vrada informaciju i o audio podacima u fajlu i o video podacima, ukoliko ih ima u fajlu. Neke od funkcija koje daju informaciju o fajlovima koji sadrže audio i video podatke u određenim formatima su: aufinfo daje tekstualni opis sadržaja fajla koji sadrži AU podatke 26

aviinfo vrada kao izlaz strukturu koja sadrži informaciju o sadržaju 'Audio/Video Interleaved' (AVI) fajla. wavinfo daje tekstualni opis sadržaja fajla koji sadrži WAV podatke 5.4.1 Učitavanje Audio/Video podataka Matlab ima ugrađene funkcije koje omogudavaju učitavanje audio i video podataka u Matlab Workspace. Neke od ovih funkcija čitaju audio ili video podatke iz fajlova. Drugi način da učitamo audio podatke u Matlab Workspace je da ih snimimo koristedi audio input uređaj, kao što je mikrofon. Funkcije koje čitaju audio ili video podatke iz nekog fajla su: auread daje podatke iz AU fajla aviread daje AVI podatke u obliku Matlab-filma mmreader daje AVI, MPG ili WMV video podatke wavread daje podatke iz WAV fajla. 5.4.2 Snimanje audio podataka Za snimanje zvuka pomodu mikrofona, koriste se funkcije audiorecorder i wavrecord (Windows os). Nakon što smo učitali audio podatke, Matlab nam omoguduje da taj sadržaj slušamo koristedi funkciju audioplayer. Možemo koristiti i funkcije sound i soundsc, kao i wavplay za fajlove sa ekstenzijom wav. 5.4.3 Ispisivanje Audio/Video podataka Matlab ima nekoliko funkcija koje možemo koristiti za ispisivanje audio ili video podatke iz Matlab Workspace-a u fajl koristedi određene formate fajlova. ISPISIVANJE AUDIO PODATAKA U Matlabu, audio podaci su numerički podaci koje možemo ispisati koristedi neku standardnu funkciju za ispisivanje podataka, kao što je save. U Matlabu takođe postoji nekoliko funkcija koje ispisuju audio podatke u fajlove u određenom formatu: auwrite ispisuje podatke u AU format fajla wavwrite ispisuje podatke u WAV format fajla 27

5.4.4 Ispisivanje Video podataka u AVI format U Matlabu možemo ispisati video podatke u obliku AVI fajla. Da bismo to uradili koristimo funkciju avifile da napravimo avifile objekat. Kada imamo objekat, možemo koristiti metode i opcije za kontrolisanje mnogih aspekata procesa ispisivanja podataka. 5.5 Rad sa podacima zapisanim u tabele Da bismo utvrdili da li fajl sadrži tabelu koja može da se pročita koristimo funkciju xlsfinfo, pri čemu je ulazni argument ime fajla, a izlazni parametri su: String Microsoft Excel Spreadsheet, ukoliko fajl sadrži Excel tabelu koja se može pročitati sa funkcijom xlsread. U suprotnom, izlaz je prazni string ( ). Niz stringova koji sadrže imena svakog Worksheet-a u fajlu. Slededi primer prikazuje informacije o fajlu sa tabelama tempdata.xls: >> [type, sheets]=xlsfinfo('tempdata.xls') type = Microsoft Excel Spreadsheet sheets = 'Tabela1' 'Tabela2' 'Tabela3' 5.5.1 Ispisivanje u fajl Da bismo ispisali matricu iz Workspace-a u fajl sa tabelom, koristimo funkciju xlswrite. Ulazni parametri funkcije xlswrite su: Ime fajla u koji hodemo da upišemo podatke Matrica koju želimo da ispišemo Ime Worksheet-a u koji upisujemo Opseg delija u tabeli u koji hodemo da upišemo podatke Izlazni argumenti funkcije xlswrite su: Status o izvršenju naredbe Upozorenje ili poruka o grešci Slededi primer ilustruje upisivanje kombinacije teksta i numeričkih podataka u fajl tempdata.xls korišdenjem funkcije xlswrite, navodedi Worksheet 'Tabela3 i delije u koje treba upisati podatke. Matrica 4x2 se upisuje u pravouganu oblast koja počinje od delije E1: 28

>> a={'a1', 'A2'; 13 23; 34 45; 56 67; 78 89} a = Osnove biomedicinskog softvera 'A1' 'A2' [13] [23] [34] [45] [56] [67] [78] [89] >> xlswrite('tempdata.xls', a, 'Tabela3', 'E1'); 5.5.2 Učitavanje iz fajla Ako hodemo da učitamo matricu iz Excel tabele u Matlab Workspace, koristimo funkciju xlsread. Ova funkcija dozvoljava i opciju da otvorimo Excel prozor koji prikazuje fajl, a zatim interaktivno izaberemo Worksheet i opseg podataka koji želimo da učitamo. Ulazni parametri ove funkcije su: Ime fajla Matrica koju želimo da učitamo Ime worksheet-a iz kojeg učitavamo podatke Opseg delija u tabeli iz kojeg hodemo da učitamo podatke Ključna reč koja otvara Excel prozor i omogudava interaktivno odabiranje Worksheeta i opsega podataka Tri odvojena izlazna parametra ove funkcije su: Numerički podaci String-podaci Bilo koji sadržaj neobrađene delije Slededi primer prikazuje korišdenje funkcije xlsread koja vrada jedan izlazni argument ndata=xlsread( tempdata.xls, Tabela3 ) Ukoliko želimo da učitamo i numeričke i tekstualne podatke, odredidemo kao parametre dve promenljive: *ndata, headertext+=xlsread( tempdata.xls, Tabela3 ) 29