Octave
octave | |
---|---|
Käyttöliittymä | teksti |
Lisenssi | GPL |
Kotisivu | www.octave.org |
Octave on numeeriseen laskentaan tarkoitettu matlab-yhteensopivahko korkean tason kieli ja erityisesti tulkki kyseiselle kielelle.
Käyttö
Octave käynnistyy yksinkertaisesti komennolla
octave
Komentorivillä Octavelle voi myös putkittaa syötettä, tällöin saattaa olla hyödyllistä välttää lisenssitulosteet valitsimella -q:
echo 1+1 | octave -q
Octave-skriptejä voi tehdä kuten yleisemminkin linuxilla #!-merkinnällä tekstitiedoston alussa:
#!/usr/bin/octave -qf 1+1
Tässä 1+1 ajetaan komentotulkin /usr/bin/octave -qf läpi, jolloin tulostuu "ans = 2"
Kieli
Tietotyypit
Octavessa esittelemättömät muuttujat oletetaan kaksoistarkkuuden liukulukujen taulukoiksi, joiden ulottuvuus määräytyy siihen sijoitettavan taulukon koosta. 2-ulotteisia taulukoita, eli matriiseja, voidaan esitellä erottamalla saman rivin alkiot pilkulla ja rivit puolipisteellä:
octave:1> A=[1,2;3,4] A = 1 2 3 4
Matriiseja voi myös määritellä lohkoittain:
octave:4> A=[[1,2;3,4],[5;5];[6,6,6]] A = 1 2 5 3 4 5 6 6 6
Laskuoperaattorit
Laskuoperaattoreissa huomioitavaa on, että vaikka yksittäisillä luvuilla operaattorit toimivat odotetusti, * ja / tarkoittavat matriisituloa ja matriisien jakolaskua.
Octave tulkitsee matriisien jakolaskun x/y lausekkeeksi (inverse(y')*x')', missä inverse(y) on y:n käänteismatriisi ja x' tarkoittaa matriisin x hermitointia (x:n alkioista otetaan kompleksikonjugaatti ja näin saatu matriisi transponoidaan.
Alkiokohtaiset operaatiot kirjoitetaan muodossa .* ja ./ .
Sijoitusoperaattori
Tyypillinen sijoitus muuttujaan A, joka siis ei säilytä välttämättä A:n aikaisempia dimensioita:
A=lauseke
Jos halutaan korvata vain osa A:sta, voidaan käyttää A:lle indeksimääreitä tavalliseen tapaan. Tällöin lausekkeen ja muuttujan määrätyn osan dimensioiden on oltava samat.
A(1:80,2)=zeros(80,1);
Funktiot
Funktioita voidaan määritellä function-avainsanalla seuraavasti:
function lista palautusarvoista = funktionimi (argumenttilista) #funktion toiminnallinen osa, jossa mahdolliset sijoitukset paluuarvoihin endfunction
Käyttöesimerkissä luodaan funktio, joka palauttaa argumenttiensa tulon ja summan, oletusarvo toiselle argumentille on 100, mikä on voimassa, kun tätä muuttujaa ei erikseen anneta parametrinä.
octave:9> function [A,B] = funktio(C,D=100) > A=C*D; > B=C+D; > endfunction octave:12> [A,B]=funktio([1,2]) A = 100 200 B = 101 102