BL40A0000 SSKMO KH 1 Seuraavassa esityksessä oletuksena on, että Matlabia käytetään jossakin ikkunoivassa käyttöjärjestelmässä (PC/Win, Mac, X-Window System). Käytettäessä Matlabia verkon yli joko tekstipäätteeltä, joka emuloi jotain grafiikkapäätettä tai X-Window ympäristössä ongelmia voi esiintyä. Periaateena on siis, että graafiset esitykset saadaan erillisiin ikkunoihin. Oletusarvona on, että perättäiset grafiikkaesitykset piirretään samaan ikkunaan, jolloin edellinen katoaa uuden tieltä. Edellisen esityksen saa säilymään komennolla hold on. Uusi grafiikkaikkuna luodaan puolestaan komennolla figure. komennot kohdistuvat aina aktiivisena olevaan ikkunaan. Ikkunan saa aktiiviseksi näpäyttämällä sitä hiirellä tai antamalla ikkunan numero figurekomennon argumenttina esim. figure(2). Kuvat voidaan numeroida jo ikkunan luomisvaiheessa. BL40A0000 SSKMO KH 2 1
Samaan ikkunaan voidaan luoda useita graafisiä esityksiä (=akselistot ja kuvaaja) subplot komennolla. 2D kuvaajien piirtämisen peruskomento on plot. Komennolle annetaan normaalisti argumentteina kaksi samankokoista vektoria, joista ensimmäinen tulkitaan piirrettävän käyrän x-koordinaateiksi ja jälkimmäinen y- koordinaateiksi. Komennolla voi olla myös kolmas argumentti, jolla voidaan määrittää viivatyyppi tai symboli sekä väri. Samalla komennolla voidaan piirtää myös useampia kuvaajia antamalla tarvittavat argumentit peräkkäin. ESIMERKKEJÄ: plot(y) plot(x,y) plot(x1,y1, b,x2,y2, r ) plot(x,[y1 y2]) plot(x1,y1, g-,x2,y2, ko ) BL40A0000 SSKMO KH 3 Aktiivinen grafiikkaikkuna tyhjennetään komennolla clf ja suljetaan komennolla close. Komento close all sulkee kaikki grafiikkaikkunat. Yleensä kaikki Matlabin piirtokomennot toimivat samalla periaatteella kuin plot. Kannattaa siis opetella käyttämään plot-komentoa hyvin, jolloin muiden piirtokomentojen soveltaminen help komento toiminnon avulla on helppoa. Muita Matlabista löytyviä 2D piirtokomentoja ovat loglog, semilogx, semilogy logaritmiset asteikot plotyy kaksi y-akselia, toinen oikeassa toinen vas. reunassa polar napakoordinaattiesitys Katso lisää muista 2D kuvaajien komennoista help graph2d. BL40A0000 SSKMO KH 4 2
Graafisten esitysten muokkaamisen voi yksittäisen kuvan osalta tehdä ikkunan valikoista käsin. Apua löytyy valikosta Help -> Editing Plots. Jos aikomuksena on piirtää useita samankaltaisia graafisia esityksiä tai automatisoida kuvien piirto, on komentojen käyttäminen parempi vaihtoehto. Myös grafiikkatoimintojen oletusasetusten vaihtamista halutuiksi istunnon ajaksi kannattaa käyttää. Kuvien muokkaamiseen liittyyvät seuraavat periaatteet: 1. Jokaiseen kuvaan liittyy yksilöllinen tunniste (eng. handle). 2. Piirtokomennot palauttavat yleensä tunnisteen arvon, jolloin sen voi sijoittaa johonkin muuttujaan. Aktiivisen ikkunan tunnisteen saa komennolla gcf. BL40A0000 SSKMO KH 5 3. esityksiin liittyy suuri joukko aseteltavia ominaisuuksia (eng. properties), jotka saa näkyviin komennolla get(h). 4. Ominaisuuden arvo muutetaan komennolla set, jonka syntaksi on set(h, PropertyName, PropertyValue ). 3D grafiikan suhteen suosittelen lämpimästi kääntymään tapauskohtaisesti help graph3d komennon ja On-line manuaalin puoleen. Yleisimmin i i käytettäviä ä 3D piirtokomentoja ovat: plot3 piste- ja viivagrafiikkaa 3D avaruudessa mesh pinnat verkkoina surf pinnat väritettyinä BL40A0000 SSKMO KH 6 3
Yleisimmin käytettyjä grafiikkatoimintoja varten on luotu joitakin suoria komentoja. Esim. grid lisää kuvaan taustaruudukon axis([xmin xmax ymin ymax]) koordinaatiakselien rajat xlabel( teksti ), ylabel( teksti ) koord.akselitekstit title( Otsikko ) otsikkotekstin lisääminen legend( data1, data2, ) useamman käyrän nimeäminen BL40A0000 SSKMO KH 7 Alla olevassa kuvassa on esitetty yhteenvetona Matlabin puurakenteinen grafiikkaobjektien hierarkia. Lisää aiheesta Matlabin manuaalista kohdasta Using MATLAB Graphics -> Handle Graphics (Objects) BL40A0000 SSKMO KH 8 4
Makrot Makrot ovat merkkijonoja, jotka muodostuvat Matlabin komennoista. Makrolle annetaan nimi ja ne talletetaan työtilaan aivan kuin muutkin muutujat. Makro suoritetaan komennolla eval(makron_nimi). ESIMERKKI:» makro1='t=0:0.001:100e-3; z=exp(-10*t).*exp (j*100*pi*t); figure; subplot(2,1,1); plot(real(z),imag(z)); grid on; axis square; subplot(2,1,2); polar(angle(z),abs(z))';» eval(makro1) Tuloksena saadaan mitä? Makrot soveltuvat lyhyehkojen komentojonojen tallettamiseen, joiden kutsuminen on usein helpompaa kuin komentohistorian selaaminen. BL40A0000 SSKMO KH 9 Makrot 1 0.5 0-0.5-1 -1 0 1 150 120 90 1 60 05 0.5 30 180 0 210 240 270 300 330 BL40A0000 SSKMO KH 10 5
Ohjelmointi: m-filet ja funktiot Matlabissa on oma ohjelmointikieli Matlab, joka muodostuu itseasiassa kaikista ohjelman komennoista ja funktioista. Myös normaalit ohjelmoinnin ohjausrakenteet ovat käytettävissä: for toistolauseke, käsky1; käsky2; ; end while ehtolauseke, käsky1; käsky2; ; end if ehtolauseke, käsky; elseif ehtolauseke, käsky; else käsky; end Vertailuoperaattorit ovat: >, <, >=, <= sekä == (yhtäsuuruus) ja ~= erisuuruus. Vertailtaitavat muutujat voivat olla myös vektoreita ja matriiseja, jolloin vertailu suoritetaan alkioittain. Vertailuun voidaan käyttää myös operaattoreita all ja any. Ehtojen yhdistämiseen voidaan käyttää vaihtoehtoisesti joko funktioita and, or ja not tai vastaavia symboleja &, ja ~. BL40A0000 SSKMO KH 11 Ohjelmointi: komentojono- ja funktiotiedostot eli m-filet Ohjelmointikielellä voidaan luoda ohjelmatiedostoja, j m-tiedostoja, j,jotka ovat jollakin editorilla luotuja tavallisia tekstitiedostoja. Tiedoston nimen loppuosa on kuitenkin.m. Tiedosto voi olla komentojonotiedosto tai funktiotiedosto. Komentojonotiedosto sisältää Matlabin käskyjä samaan tapaan kuin makrot. Tiedosto suoritetaan kirjoittamalla tiedoston nimi (ilman.m laajennusta) Matlabin kehotteeseen. Mtlbi Matlabin funktiotiedosto t on vastaava muiden ohjelmointikielien li funktioille: ill funktiolla voi olla nolla, yksi tai useampia syöte- ja tulosparametreja, jotka välitetään funktiota kutsuttaessa tai palautettaan funktion suorituksen tuloksena. Parametrit voivat olla mitä tahansa Matlabin muuttujia. BL40A0000 SSKMO KH 12 6
Ohjelmointi: komentojono- ja funktiotiedostot eli m-filet Funktiotiedoston ensimmäisellä rivillä määritellään parametrit: function [y1,y2, ym]=fnimi(u1,u2, un) u1,u2, un ovat syöteparametreja ja y1,y2, ym ovat tulosparametreja. Jos tulosparametreja on vain yksi hakasulkuja ei tarvita. Funktion nimi on fnimi ja sen on talletettava tiedostonimellä fnimi.m. Funktiota kutsutaan komentoikkunassa, makrossa tai toisessa komentojono- tai funktiotiedostossa komennolla joka on muotoa [t1,t2, tm] t2 tm]=fnimi(s1,s2, sn) s2 sn) %-merkillä erotetaan kommenttirivit varsinaisesta ohjelmakoodista. Määrittelyrivin jälkeiset perättäiset kommenttirivit tulostuvat komennolla help fnimi käyttäjälle ohjeeksi. BL40A0000 SSKMO KH 13 Ohjelmointi: komentojono- ja funktiotiedostot eli m-filet Esimerkkinä olkoon Matlabin cot-funktio: function y = cot(z) %COT Cotangent. % COT(X) is the cotangent of the elements of X. % Copyright (c) 1984-98 by The MathWorks, Inc. % $Revision: 5.3 $ $Date: 1997/11/21 23:28:15 $ y = 1./tan(z); BL40A0000 SSKMO KH 14 7
Ohjelmointi: komentojono- ja funktiotiedostot eli m-filet Komentojono- ja funktiotiedostot luodaan siis tavallisella tekstieditorilla. Matlabissa on versiosta 5 (Win) lähtien ollut oma editori joka käynnistyy automaattisesti kun avataan tai luodaan uusi m-tiedosto. Olemassa olevaa m- tiedostoa pääsee editoimaan myös komennolla edit tiedosto.m. BL40A0000 SSKMO KH 15 8