Az Octave alapvető adatszerkezete a komplex számokból álló mátrix. Mátrixok használata =================== - Létrehozás, elem kiválasztása ill. beállítása > a = [3 4 5] > a = > 3 4 5 > a(1, 2) > ans = > 4 > a(2, 1) > error: invalid row index = 2 % mivel a-nak csak 1 sora van > a(2) > ans = > 4 > a(1, 3) = 1 > a = > 3 4 1 > a(2) = 0 > a = > 3 0 1 > b = [3; 4; 5] > b = > 3 > 4 > 5 > b(1, 2) > error: invalid column index = 2 > b(2, 1) > ans = > 4 > b(2) > ans = > 4 > c = [3 4 5; 6 7 8] > c = > 3 4 5 > 6 7 8 > c(3, 2) > ans = > 8 > c(3) > ans = > 4 % amint latjuk, ilyenkor a bejárás oszloponként történik > c(3, 2) = 1 > ans = > c = > 3 4 5 > 6 7 1 > c(3) = 0 > ans = > c = > 3 0 5 > 6 7 1 - Vektor létrehozása egyenletesen növekvő számokból > x = 2:5 > x = > 2 3 4 5 > y = 2:0.5:5 > y = > 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000 - Részmátrix kiválasztása > c = [1 2 3; 4 5 6; 7 8 9] > c = > 1 2 3 > 4 5 6 > 7 8 9 > c(2:3, 1:2) > ans = > 4 5 > 7 8 > c(2:3, 1:2) > ans = > 4 5 > 7 8 > c([2 3], [1 2]) > ans = > 4 5 > 7 8 > c([1 3], [1 3]) > ans = > 1 3 > 7 9 > c(1, :) > ans = > 1 2 3 > c(2:end, :) > ans = > 4 5 6 > 7 8 9 > c(1, :) = [9 9 9] % részmátrixot beállítani is lehet > ans = > 9 9 9 > 4 5 6 > 7 8 9 - Műveletek: +, -, *, /, ^, ' A * mátrix szorzást, a / inverzzel való mátrix szorzást, a ^ hatványozást jelent. Ha elemenként szeretnénk egy műveletet elvégezni (*, /, ^ esetén van értelme), akkor . jelet kell írni a művelet elé. > a = [1 2; 3 4] > a = > 1 2 > 3 4 > a * a > ans = > 7 11 > 15 22 > a .* a > ans = > 1 4 > 9 16 - Összehasonlító műveletek: <, >, <=, >=, ==, ~= Ezen műveletek eredménye egy mátrix, amely pontosan 1-est tartalmaz azokban a pozíciókban, ahol a reláció fennál, és 0-át, ahol nem áll fenn. A ~= nem egyenlőt jelent. > a = [3 1; 2 4] > a = > 3 1 > 2 4 > a < 3 > ans = > 0 1 > 1 0 - Logikai műveletek: &, |, ~ > a = [1 0 1] > a = > 1 0 1 > b = [0 1 1] > b = > 0 1 1 > a & b > ans = > 0 0 1 > a | b > ans = > 1 1 1 > ~a > ans = > 0 1 0 Cellatömbök használata: ======================= Akkor van rájuk szükség, ha nem számokból (hanem mondjuk string-ekből) akarunk tömböt létrehozni. > a = { 'alma', 'korte' } > a = > { > [1,1] = 'alma' > [1,2] = 'korte' > } > a{1} > ans = > alma > a{2} > ans = > korte > a{3} = 'narancs' > a = > { > [1,1] = 'alma' > [1,2] = 'korte' > [1,3] = 'narancs' > } Függvények: =========== - help - fprintf - size, length - zeros, ones, eye - find - min, max % olyan változatuk is van, amely megadja, hogy melyik indexű volt a maximális / minimális elem - sum, mean, var - sort % olyan változata is van, amely a megadja, hogy melyik pozícióba melyik indexű elem került - fopen, fclose - fgets - strtok - strcmp % string-eket nem lehet == jellel összehasonlítani! - save - load % csak whitespace-ekkel tagolt, számokat tartalmazó fájlt tud beolvasni - plot, legend - surf, meshgrid - clear - floor - polyval, polyfit, roots, conv - datenum, datevec - rand % a véletlenszám generátor kezdőállapotát is ezzel lehet beállítani - unidrnd, unifrnd, randperm - real, imag - sin, cos, exp, sqrt - rem Vezérlési szerkezetek: ====================== - for - while - if Mindegyiket end kulcsszóval kell lezárni. A for és a while ciklusban használhatók a break ill continue utasítások. Egyéb: ====== - A képzetes egység jele: i - A transzponált (komlpex mátrixok esetén transzponált kontjugált) jele '. - Az A*x = b lineáris egyenletrendszer megoldása: x = A \ b - A függvényeket .m nevű fájlba kell tenni - A változókat nem kell deklarálni - A parancsok futását control+c billentyűkombinációval lehet megszakítani.