MATLAB-perusteet

MATLAB on interaktiivinen vektori- ja matriisilaskentaohjelmisto. Se on matriisikieli, joka soveltuu mitä moninaisimpiin tieteellisen ja teknisen laskennan tehtäviin.

Cleve Moler kirjoitti alkuperäisen MATLAB:in Fortran-version 1970-luvun loppupuolella pienimuotoiseksi matriisilaskennan opetusohjelmaksi. Kyseessä oli Fortranilla kirjoitettu matriisitulkki, joka käytti LINPACK- ja EISPACK- kirjastojen rutiineja laskentakoneenaan. Matlab:n ytimenä on edelleen numeerisen lineaarialgebran "peruskallion" muodostama Fortran-ohjelmakokoelma, joka kehittyi edellä mainittujen kahden kirjaston yhdistämisenä ja päivityksenä. Tämä Fortran90-kielellä kirjoitettu kirjasto on nimeltään LAPACK.

Alkuperäinen MATLAB oli julkisohjelma, jota levitettiin yliopistoille. Nykyversiot ovat C-kielellä kirjoitettuja, The MathWorks Inc.:n toimittamia kaupallisia tuotteita, joihin on tehty lukuisia laajennuksia alkuperäiseen MATLAB-ohjelmaan verrattuna.

Kaupalliset lisenssit ovat varsin arvokkaita, mutta mm. opiskelutarkoituksiin on saatavissa/neuvoteltavissa edullisia lisenssejä. Lisäksi Matlab:n käytön opettelussa voi käyttää julkisohjelmia Octave tai Scilab, joista edellinen on suoremmin yhteensopiva, mutta jälkimmäsen kieli on myös kutakuinkin uskollinen Matlab:lle.

MATLABin hyviä puolia:

Käyttösuosituksia, avustusta, help

HUOM: Tekstissä ovat monet MATLAB-funktiot linkkejä MATLABin avustustoiminnon ohjeteksteihin ja viittaavat MathWorks'n HelpDesk-sivustoon osoitteessa http://www.mathworks.com/access/helpdesk/help/techdoc/ref/.

MATLAB-komennot on ryhmitelty tiettyihin ryhmiin; pelkkä help antaa luettelon näistä ryhmistä ja help ryhmän_nimi listaa kaikki ryhmän komennot ja luonnollisesti help komento antaa lyhyen selostuksen halutusta komennosta. Aikaisempia syötteitä voi selata ja editoida nuolinäppäinten avulla. MATLAB-komennot helpdesk ja helpbrowser käynnistävät varsin kattavan opastusjärjestelmän, jonka käyttöön kannattaa aktivoitua tämän pikku-oppaan rinnalla.

Käsillä on interaktiivisen ohjelman interaktiivinen käyttöopas. Siispä kannattaa pitää MATLAB-istunto auki ja suorittaa oppaan istuntojen komentoja. Osassa istuntoesimekkejä annetaan vain käyttäjän antamat komennot ilman tulostuksia. Tämä selkeyttää ja lyhentää tekstiä ja motivoi paremmin lukijaa omatoimiseen kokeiluun ohjelmalla. Huomaa, että oppaan sivulta voi suoraan leikata/liimata istuntojen osia MATLABiin.
Sellaiset esimerkit, joissa annetaan myös ohjelman antamat tulosteet, varustetaan syötteiden osalta MATLAB-kehotteella >>, jolloin tulosteet erottuvat riveinä, joilla kehotetta ei ole.
Esimerkki:

>> E=eye(4,4) % Annetaan muuttujalle E arvoksi 4x4-yksikkömatriisi. 

E =

     1     0     0     0
     0     1     0     0
     0     0     1     0
     0     0     0     1
>> mesh(E)  % Piirretään 3d-kuva matriisista, samalla testataan
            % grafiikan toimivuus.

MATLAB Windows-, Macintosh- ja Unix- ympäristöissä

Uusin (26.1.2015) kokeilemani versio on 2014b, versiot ovat vauhdilla kasvava luonnonvara näinä ankeina aikoina. Käytännöllisesti katsoen kaikki oppaan alkuosan opit pätevät versiosta 5 alkaen, ja monet perusasiat vanhemmillekin. Uudempia piirteitä ovat moniulotteiset ja heterogeeniset taulukot, uudet tietorakenteet, kutsumanimeltään "struct", sekä oliopohjainen ohjelmointi. Käyttöliittymässä on myös tapahtunut koko ajan kehitystä.

Matlab käynnistyy joko komennolla matlab tai kaksoisklikkaamalla MATLAB-ikonia.
TKK (Aallon):n UNIX-koneissa komentoikkunasta näin:

     
         matlab&  tai 
         matlab -nojvm  [no java virtual machine]
         ("module load matlab"  vaaditaan  joissain koneissa ennen käynnistystä, 
         kuten triton.aalto.fi)  
Valitsimella -nojvm saadaan pelkkä kometoikkuna terminaalitilassa työskentelyyn.
Kannattaa huomata, että Octave-työskentely näyttää samanlaiselta, paitsi siinä myös grafiikka toimii tässä tilassa. Etuna tässä on nopeampi käynnistys ja se on erityisesti etäkäytössä ja suurissa "batch-ajoissa" tehokkuussyistä suositeltava. Toki tässä suljetaan pois merkittäviä käyttömukavuuksia, joihin kehittyy aika nopeasti riippuvuus.
Yleensä Matlab-työskentely kannattaa tehdä GUI-käyttöä hyödyntäen siis ilman valitsimia käynnistäen.

Ohjelma lopetetaan komennolla » quit tai sulkemalla hiirellä Matlab-ikkuna.

Matlab-ikkunan "moderni" oletusasu

[Sisällys]

MATLAB-työn alkuvaiheet

Työn talletus ja dokumentointi

On heti syytä huomata, että komentoikkuna ei ole mikään "työarkki", jonka voisi tallettaa sellaisenaan, vastaavaan tyyliin kuin esimerkiksi Mathematican "Notebook" tai Maplen "Worksheet". Parannusta vanhaan on kyllä uuden ikkunoinnin mukana tullut sikäli, että komentoikkunaa voi selata pitkälle taaksepäin ja "command history" näyttää pitkän listan käyttäjän antamia komentoja, jotka voidaan toistaa klikkaamalla ao. historiaikkunan komentoa.
Huomaa myös komentojen selaus komentoikkunassa nuoli-ylös-näppäimellä, vanhojen hyvien aikojen tapaan. Se toimii tietysti myös tekstipohjaisessa ikkunassa, kuten aina ennenkin.

Suosittelen Matlabin editorin avaamista, valintaa "New m-file". Työn kannalta tärkeät, tulkin hyväksymät komennot kannattaa siirtää leikkaus/liimaus-tekniikalla joko komentoikkunasta tai historiaikkunasta tähän tiedostoon ja sieltä taas sopivasti komentoikkunaan. Prosentti (%)-alkuiset rivit ovat kommentteja. Matlabin m-tiedostoja sekä työn dokumentointia (publish, diary) käsitellään tarkemmin tässä ohjelmointia ja m-tiedostoja koskevassa osassa. kts. myös laajemman oppaan luvusta 1.3

Korostettakoon tässä uutta hienoa dokumentointimahdollisuutta, edellä mainittua publish-toimintoa. Sitä ryhdyin käyttämään tämän oppaan jatkokehittelyssä. Yksinkertainen esimerkki:

Nyt voitaisiin MATLAB-komentoikkunassa kirjoittaa koe, joka suorittaisi yllä olevat komennot. Eikä tässä kaikki, kun haluamme hienon html-dokumentin, haemme editorin FILE-valikosta "publish koe.m", jonka seurauksena ystävämme MATLAB tekee meille kauniin html-dokumentin kuvineen kaikkineen. Doku löytyy alihakemistosta html. Tässä tapauksessa se näyttää tältä. (Jos katsot koe.html-tiedoston lähdekoodia, näet sen olevan hyvin selväkielistä html:ää, jota voit tarpeen mukaan editoida. Kuitenkin kannattaa yleensä editoida m-tiedostoa ja antaa MATLAB:n suorittaa html-generointi.)
Eikä tässäkään vielä kaikki, uusimmissa (v. 2016-2017) Matlab-verisioissa on LIVE-editor, joka tekee vieläkin hienompaa dokumenttia, palataan tähän.

Muuttujat ja sijoitus (nimi = arvo)