MATLAB sisältää monipuoliset plottauskomennot datan 2- ja
3-ulotteiseen visualisoimiseen. Katso esimerkiksi komentoja
plot ja plot3.
plot-komennon
avulla. Ajatellaan, että haluamme piirtää käyrän
y=x3-2x+1 välillä [-2,2]. Näin se käy:
Muuttujaksi x otetaan sataan osaan
diskretoitu x-akseli.
» x=linspace(-2,2,100);Luvun 100 voi jättää pois, sillä 100 on oletusarvo. Lasketaan y-vektoriin vastaavat funktion arvot. Huomaa
.^ (mieti tarkkaan pisteen merkitys).
» y=x.^3-2*x+1;Plotataan vektorien x ja y pisteparit.
» plot(x,y)

Kokeile minkälaisen käyrän saat jos 100:n sijasta käytät arvoa 10.
Kuvan skaalausta voi muuttaa komennolla axis.
Perusmuoto on axis([xmin xmax ymin ymax]), joka määrää
koordinaatiston rajat. axis-komennon argumenttina voi olla
myös erinäisiä merkkijonoja, joista useimmin tarvittavia lienevät
axis('equal') ja axis('square'). Alkutilaan päästään
komennolla axis('normal').
axis('equal') ja axis('square'), jotka muuten voi
antaa myös tyyliin axis equal, ovat erityisen tarpeellisia
silloin, kun halutaan esim. ympyrän näyttävän ympyrältä.
Kokeile miten äsken saamasi kuva muuttuu kun käytät yllä mainittuja
axis-komennon eri muotoja. Kokeile myös zoomausta
axis-komennon avulla, kunnes diskretointiraja tulee vastaan,
jolloin viimeistään on tehtävä uusi linspace.
help zoom antaa tietoa uudesta
zoomauskomennosta. Komento zoom on mahdollistaa zoomattavan
alueen valinnan hiirellä.
Jos haluat piirtää toisen käyrän jo olemassaolevaan kuvaan, niin anna
komento hold on. Tämän jälkeen kaikki seuraavat
käyrät tulevat edellisten 'päälle', kunnes annetaan komento hold
off. Piirrä yllä saadun käyrän kanssa samaan kuvaan
y=2cos(x2-5x+17).
Toinen tapa usean käyrän piirtämiseksi samaan kuvaan on
plot-komennon muoto
plot(x1,y1,x2,y2,x3,y3,...). plot-komennossa
voi lisätä viivatyyppimääreen kullekin haluamalleen käyrälle. Jos
haluttaisiin vaikkapa piirtää sinikäyrä sinisellä, kosinikäyrä
katkoviivalla ja lisäksi merkitä jälkimmäiselle rinkuloilla kaikki
/2:n monikerrat välillä [0,10], olisi
sopivaa tehdä näin:
» x=linspace(0,10); » x1=0:pi/2:10; » plot(x,sin(x),'b',x,cos(x),'--',x1,cos(x1),'o') » grid

Huomaa, että plot(x1,cos(x1),'o') ('o' :n sijalla käy
esim. 'x' tai '.') piirtää vain ao. pisteet, mutta jättää
yhdistysjanat piirtämättä.
grid-komennolla saa
koordinaatti- (hila-) viivat, usein kätevää. Kokeile joitakin yllä
esitetyn kaltaisia yhdistelmiä.
Uuden piirtoikkunan saa avatuksi komennolla figure.
Piirtoikkunoilla on numero, jonka avulla useista ikkunoista voidaan
valita se, johon halutaan piirtää: komento figure(n), missä
n on ikkunan numero, ohjaa seuraavat käyrät ikkunaan
n.
Komennon
linspace
oletusarvona on jako sataan osaan, mikä on yleensä sopiva
2D-piirroksiin. Tavallisimmin piirto tehdään siten tähän tapaan:
» x=linspace(a,b);a:lla ja b:llä oltava numeeriset arvot.
» y=lauseke;Lauseke, jossa esiintyy x, kuten
y=exp(sin(x))+x.^3
» plot(x,y)
Yllä kannattaa panna merkille puolipisteen käyttö, joka säästää tarpeettomalta pitkän vektorin tulostukselta.
Huomaa erityisesti, että jos haluat muuttaa x-aluetta,
vaikkapa "zoomata" kiintoisammalle alueelle, niin komennon
x=linspace(...); jälkeen on laskettava y-arvot
uudestaan uusissa x-pisteissä, muuten x- ja
y-arvot eivät vastaa toisiaan ja kuva on sen mukainen, yleensä
hyvin omituinen. Usein kannattaa sijoittaa kaikki yllä olevat 3
komentoa samalle riville ja nuolinäppäin-iteroida/editoida.
Komento
fplot on vaihtoehtoinen tapa funktion
piirtämiseen. Tällöin funktion on oltava joko MATLAB-funktio (kuten
sin, cos, exp, ...) tai itse määritelty
(M-tiedostossa asustava) funktio.
Esim: fplot('sin',[0,2*pi]) tekee saman kuin
x=linspace(0,2*pi);plot(x,sin(x)). (Modulo x-akselin
diskretointi)
Selvitä itsellesi, miten 3D-kuvia tehdään, vaikkapa seuraavan
esimerkin avulla, kyse on funktion
f(x,y)=e-x2-y2
kuvaajasta. Samalla tavalla muodostettu korkeusmatriisi soveltuu niin
pinta- (surf), korkeuskäyrä-
(contour) kuin yhdistelmäkuviin
(surfc).
» xx=-2:.1:2; yy=xx;
» [x,y]=meshgrid(xx,yy);
» size(x)
ans =
41 41
» z=exp(-x.^2-y.^2);
» surf(x,y,z)

» for j=1:5;view(-20+10*j,20*j),pause,end; % Kokeile pientä liikettä » contour(x,y,z)