exp(i*pi) ans = -1.0000e+00 + 1.2246e-16i
octave
quit
eller exit
på Octave kommando-prompten.
exp(i*pi) ans = -1.0000e+00 + 1.2246e-16i
format % ger 5 decimalsiffror (default) format short % 3 format long % 15 format short e % exponentform med 3 decimalsiffror format long e % exponentform med 15 decimalsiffror
octave:15> format long e octave:16> 4/3 ans = 1.33333333333333e+00
octave
är ett interpreterad språk
c
-syntax
/
är flyttalsdivision, använd idivide
för heltalsdivision
octave:6> idivide(7,3,"fix") ans = 2
octave:9> k = sqrt(-1) k = 0 + 1i octave:10> k * k ans = -1
octave:1> k = sqrt(-1); octave:2> k = k * k; octave:3> printf("\n\tk=%12.6f\n\n", k); k= -1.000000
v = [1 2 3];
v(2) = 527;
0
i C
).
octave:6> v = [ 1 2 3]; % element separeras med mellanslag octave:7> v(2) % hämta element på position 2 ans = 2 % octave:8> v(2) = 527; % Ändra element på position 2 octave:9> v(2) ans = 527 octave:10> ans % ans är en automatisk variabel ans = 527 octave:11> v(1) = 2 * v(2); % Ändra element på position 1 octave:12> v(1) ans = 1054
octave:3> A = [11 12 13; 21 22 23; 31 32 33] A = 11 12 13 21 22 23 31 32 33 octave:4> A(3,2) ans = 32
octave:5> A' ans = 11 21 31 12 22 32 13 23 33
octave:1> v = [1 2 3]; % rad-vektor octave:2> u = [1 5 7]; octave:3> v' % v' är en kolumn-vektor 1 2 3 octave:4> v % v fortfarande rad-vektor 1 2 3 octave:5> v * v' % skalär produkt av v med sig själv ans = 14 octave:6> v * u' % skalär produkt av v med u ans = 32
for
satsen i octaveoctave:7> for i = 1:7 > a(i) = i * i; > end octave:8> a a = 1 4 9 16 25 36 49
slumpaEntal.m
funktion: slumpaEntal()
function slumpaEntal() % Slumpar fram ett ental % heltal mellan 0 och 9 % och skriver ut det.. slumpTal = floor(10 * rand(1)); printf('\tEntalet blev %u\n', slumpTal);
octave:1> slumpaEntal Entalet blev 8 octave:2>
octave:1> x=7 x = 7 octave:2> if (rem (x, 2) == 0) > printf ("x is even\n"); > else > printf ("x is odd\n"); > endif x is odd octave:3>
if (condition) then_body else else_body endif
exempel.m
starta först octave
skriv sedan exempel
% Presentera programmet. printf('************************************\n'); printf(' Programmet avgör om ett inläst tal \n'); printf(' är positivt, negativt eller noll \n'); printf('************************************\n\n'); % Fråga användaren efter ett tal och läs in det. tal = input('Ange ett heltal: '); % Kontollera talet och skriv ut rätt text. if tal > 0 printf('Talet är positivt.\n'); elseif tal == 0 printf('Talet är lika med noll.\n'); else printf('Talet är negativt.\n'); end
while (condition) body endwhile
F(0) = 0, F(1) = 1, F(n) = F(n - 1) + F(n - 2)
octave:1> fib = ones (1, 10); octave:2> i = 3; octave:3> while (i <= 10) > fib (i) = fib (i-1) + fib (i-2); > i++; > endwhile octave:4> fib(10) ans = 55 octave:5>
octave:12> fib fib = 1 1 2 3 5 8 13 21 34 55
F(0) = 0, F(1) = 1, F(n) = F(n - 1) + F(n - 2)
octave:1> fib = ones (1, 2); octave:2> fib fib = 1 1 octave:3> for i = 3:100 > fib (i) = fib (i-1) + fib (i-2); > endfor octave:4> fib(100) ans = 3.5422e+20 octave:5>
1; function ff1() printf('\t hej ff1\n'); end function ff2() printf('\t hej ff2\n'); end
octave:1> source("ff.m") octave:2> ff1() hej ff1 octave:3> ff2() hej ff2
source
kommandot.
1;
(enligt dokumentationen)
.m
som funktionen behöver den inte laddas.
ff1()
i fil ff1.m
1; % funktion med en in- och en ut-parameter function y = f(x) y = x * x; end
octave:1> source ("fun.m"); octave:2> a = f(5); octave:3> a a = 25
1; % läser in tre värden function [a,b,c] = readabc() a = input("a = "); b = input("b = "); c = input("c = "); end
octave:1> source ("funs.m"); octave:2> [d,e,f] = readabc(); a = 21 % Obs: endast talet 21 matades in! b = 32 c = 43 octave:3> d d = 21 octave:3> a error: `a' undefined near line 6 column 1
a
är odefinierad medan d
harfått ett värde, 21
function a = fib(n) % Returnerar array a = ones(1,2); i = 2; do i++; a(i) = a(i-1) + a(i-2); until (i == n); end
octave:1> a = fib(11) a = 1 1 2 3 5 8 13 21 34 55 89
while
sats med until
satswhile (condition) % Så länge condition är sant body % upprepas body endwhile % end eller endwhile do body % body upprepas until (condition) % så länge condition är falskt, dock minst en gång % Evig väntan: ColdHell = 0; do disp("\n\tVänta lite\n"); until (ColdHell)
switch
statementswitch tal case värde 1 satsgrupp 1 % Om tal har värde 1 utförs stasgrupp 1 case värde 2 satsgrupp 2 % Om tal har värde 2 utförs stasgrupp 2 . . . case värde n % Om tal har värde n utförs stasgrupp n satsgrupp n otherwise % I annat fall utförs satsgrupp. satsgrupp end
switch
exempelmynt = input('Valör: '); switch mynt case {0.5, 1} disp('Femtioöring eller enkrona') case 5 disp('Femkrona') case 10 disp('Tiokrona') otherwise disp('Inmatade valörer ska vara 0.5, 1, 5, eller 10') end
disp( )
står för display