4 175
muokkausta
(→Kieli) |
(kh) |
||
Rivi 4: | Rivi 4: | ||
==Käyttö== | ==Käyttö== | ||
Octave käynnistyy yksinkertaisesti | Octave käynnistyy yksinkertaisesti komennolla | ||
octave | octave | ||
Komentorivillä Octavelle voi myös putkittaa syötettä, tällöin saattaa olla hyödyllistä välttää lisenssitulosteet valitsimella -q | Komentorivillä Octavelle voi myös [[Komentorivin perusteet|putkittaa]] syötettä, tällöin saattaa olla hyödyllistä välttää lisenssitulosteet valitsimella <tt>-q</tt>: | ||
echo 1+1 | octave -q | echo 1+1 | octave -q | ||
Octave-skriptejä voi tehdä kuten yleisemminkin linuxilla #! -merkinnällä tekstitiedoston alussa: | Octave-skriptejä voi tehdä kuten yleisemminkin linuxilla <tt>#!</tt>-merkinnällä tekstitiedoston alussa: | ||
#!/usr/bin/octave -qf | #!/usr/bin/octave -qf | ||
1+1 | 1+1 | ||
Tässä 1+1 ajetaan komentotulkin /usr/bin/octave -qf läpi, jolloin tulostuu "ans = 2" | Tässä 1+1 ajetaan komentotulkin <tt>/usr/bin/octave -qf</tt> läpi, jolloin tulostuu "<tt>ans = 2</tt>" | ||
==Kieli== | ==Kieli== | ||
===Tietotyypit=== | ===Tietotyypit=== | ||
Octavessa esittelemättömät muuttujat oletetaan [[kaksoistarkkuus | kaksoistarkkuuden]] [[liukuluku| liukulukujen]] taulukoiksi, joiden ulottuvuus määräytyy | Octavessa esittelemättömät muuttujat oletetaan [[kaksoistarkkuus | kaksoistarkkuuden]] [[liukuluku| 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] | octave:1> A=[1,2;3,4] | ||
A = | A = | ||
Rivi 24: | Rivi 23: | ||
3 4 | 3 4 | ||
Matriiseja voi myös | Matriiseja voi myös määritellä lohkoittain: | ||
octave:4> A=[[1,2;3,4],[5;5];[6,6,6]] | octave:4> A=[[1,2;3,4],[5;5];[6,6,6]] | ||
A = | A = | ||
1 2 5 | 1 2 5 | ||
3 4 5 | 3 4 5 | ||
Rivi 34: | Rivi 31: | ||
===Laskuoperaattorit=== | ===Laskuoperaattorit=== | ||
Laskuoperaattoreissa huomioitavaa on, että vaikka yksittäisillä luvuilla operaattorit toimivat odotetusti * ja / tarkoittavat matriisituloa ja jakolaskua ( | Laskuoperaattoreissa huomioitavaa on, että vaikka yksittäisillä luvuilla operaattorit toimivat odotetusti, * ja / tarkoittavat matriisituloa ja matriisien jakolaskua (Octaven tulkinta (inverse(y')*x')' ). Alkiokohtaiset operaatiot kirjoitetaan .* ja ./ . | ||
====Sijoitusoperaattori==== | ====Sijoitusoperaattori==== | ||
Tyypillinen sijoitus muuttujaan A, joka siis ei säilytä välttämättä A:n aikaisempia dimensioita | Tyypillinen sijoitus muuttujaan A, joka siis ei säilytä välttämättä A:n aikaisempia dimensioita: | ||
A=lauseke | A=lauseke | ||
Jos halutaan korvata vain osa A:sta, voidaan käyttää A: | 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); | A(1:80,2)=zeros(80,1); | ||
=== | ===Funktiot=== | ||
Funktioita voidaan määritellä function-avainsanalla seuraavasti | Funktioita voidaan määritellä <tt>function</tt>-avainsanalla seuraavasti: | ||
function lista palautusarvoista = funktionimi (argumenttilista) | function lista palautusarvoista = funktionimi (argumenttilista) | ||
#funktion toiminnallinen osa, jossa mahdolliset sijoitukset paluuarvoihin | #funktion toiminnallinen osa, jossa mahdolliset sijoitukset paluuarvoihin | ||
endfunction | 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ä. | 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ä. | ||
<pre> | |||
octave:9> function [A,B] = funktio(C,D=100) | octave:9> function [A,B] = funktio(C,D=100) | ||
> A=C*D; | > A=C*D; | ||
Rivi 61: | Rivi 59: | ||
101 102 | 101 102 | ||
</pre> | |||
== Katso myös == | == Katso myös == | ||
* [[Gnuplot]] | * [[Gnuplot]] |