GNU Octave/Wprowadzenie

Z Wikibooks, biblioteki wolnych podręczników.

Rozpoczęcie pracy[edytuj]

W terminalu wpisz :

octave

W zależności od wersji otrzymasz :

GNU Octave, version 3.2.4
Copyright (C) 2009 John W. Eaton and others.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type `warranty'.

Octave was configured for "x86_64-pc-linux-gnu".

Additional information about Octave is available at http://www.octave.org.

Please contribute if you find this software useful.
For more information, visit http://www.octave.org/help-wanted.html

Report bugs to <bug@octave.org> (but first, please read
http://www.octave.org/bugs.html to learn how to write a helpful report).

For information about changes from previous versions, type `news'.

octave:1>

Możesz zakończyć pracę

quit



Dane[edytuj]

Wprowadzanie danych[edytuj]

Zakończenie linii średnikiem powoduje, że Octave nie wyświetla wyniku działania komendy :


octave:2> B = rand (3, 2);

Zakończenie linii poprzez naciśnięcie klawisza Enter powoduje wyświetlenie wyniku działania komendy :

octave:3> B = rand (3, 2) 
B =
 0.515199  0.315178
 0.765914  0.018528
 0.923735  0.585183

Wklejanie danych z Windows do Octave

  • Skopiuj odpowiednie dane z Windows do schowka ( zaznacz, potem Ctrl-C )
  • przejdź do okna Octave
  • użyj środkowego klawisza myszy

Generowanie danych[edytuj]

Wektor[edytuj]

  • Wygenerować wektor długości 10 zawierający losowe liczby rzeczywiste z przedziału [-3, 5]
octave:1> rand(1,10).*8-3
ans =
   1.17900   1.20344   0.58057   -2.59145   3.03283   2.24702   4.99211   1.49550  -1.05363  -1.32788

Macierz[edytuj]

Ręczne tworzenie macierzy. Średnik oddziela wiersze :

a = [ 1, 1, 2; 3, 5, 8; 13, 21, 34 ]
a =

    1    1    2
    3    5    8
   13   21   34

Wygenerować macierz 3x5 (3 wiersze, 5 kolumn) zawierającą losowe liczby naturalne z przedziału [1, 99]

octave:2> floor(rand(3,5).*99).+1 # Element-wise operations 
ans =
  80  63  74  19  55
  81  15  81  26   3
  81  80  70  16  95

Octave numeruje po ludzku czyli zaczyna od 1.[1]

Zapisywanie danych[edytuj]

Macierz MyImage po zapisaniu do pliku png ma wielkość 898 KB. Jeśli zapiszemy macierz do dalszej obróbki

octave:4> save MyImage.dat MyImage # format domyślny = Tekstowy = 98,2 MB
octave:5> save -v7 MyImage.mat # 5.9 MB
octave:6> save -mat MyImage.mat # 91.6 MB

Sprawdzanie czasu wykonania[edytuj]

Obliczyć czas wykonania komendy lub podprogramu. Komenda tic włącza stoper, a toc wyłącza i podaje czas w sekundach, który upłynął od ostatniego tica. Na przykład:

octave:85> tic; eig(rand(500,500)); toc
ans = 1.6109
octave:86> tic; toc
ans = 0.00042700


Katalogi[edytuj]

Sprawdzamy katalog roboczy komendą pwd :

octave-3.2.3:1> pwd
ans = /home/adam

Aktualna ścieżka wyszukiwania :

path

Możesz dodać katalog do ścieżki ( tylko na tą sesję )

octave:2> addpath("/home/dedmonds/octave/mfiles/");

i jeśli chcesz zachować zmienioną ścieżkę na stałe ;

savepath

Aktualny katalog

dir

Zawartość aktualnego katalogu

ls

lub

what

Aby przerwać wyświetlanie naciśnij klawisz q

Skrypty[edytuj]

Skrypt jest to plik z kodem Octave.

Typy[edytuj]

  • skrypt z definicją funkcji ( jednej lub więcej funkcji)
  • skrypt Octave z kodem
  • skrypt Bash z kodem Octave
  • skrypt z definicją klasy


Zapisujemy go z rozszerzeniem m ( np. nazwa.m) w aktualnym katalogu.

Uruchomiamy go za pomocą nazwy bez rozszerzenia, w tym przypadku nazwa.


Jak uruchomić skrypt z kodem matlaba?

Przykłady skryptów są tutaj.


Skrypt Basha[edytuj]

#!/bin/bash
# for-bash:
#{
  exec octave -q --no-init-file "$0" ${1+"$@"}
#}
# for-octave:
1;
function jim ()
  printf ("program_name: '%s'\n", program_name ());
endfunction
printf ("calling jim\n")
jim

Uruchamianei[edytuj]

  • z poziomu Octave
    • source (file)
    • nazwa
    • nazwa.m
  • z poziomu Basha

Pakiety[edytuj]

Pakiet przed użyciem trzeba :

  • zainstalować
  • załadować

Instalacja[edytuj]

Najpierw ściągamy z z http://octave.sourceforge.net/packages.php plik z pakietem. Zapisujemy go w katalogu roboczym ( pwd).

Instalujemy poleceniam :

pkg install package_file_name.tar.gz

Pakiet jest kopiowany do odpowiedniego katalogu

lub :

sudo apt-get install octave-image

Ładowanie[edytuj]

Ładowanie zainstalowanych pakietów :

pkg load package_name

Przykład : funkcja waitbar jest w pakiecie miscellanous. Przed jej użyciem należy ten pakiet załadować.

Sprawdzanie[edytuj]

Lista zainstalownych pakietów uzyskamy za pomocą pkg list

octave-3.2.3:2>  pkg list
Package Name       | Version | Installation directory
-------------------+---------+-----------------------
              ftp  |   1.0.2 | /usr/share/octave/packages/3.2/ftp-1.0.2
          general *|   1.1.3 | /usr/share/octave/packages/3.2/general-1.1.3
            image *|  1.0.10 | /usr/share/octave/packages/3.2/image-1.0.10
               io *|   1.0.9 | /usr/share/octave/packages/3.2/io-1.0.9
    miscellaneous *|   1.0.9 | .../share/octave/packages/3.2/miscellaneous-1.0.9
missing-functions *|   1.0.2 | .../octave/packages/3.2/missing-functions-1.0.2
             plot *|   1.0.7 | /usr/share/octave/packages/3.2/plot-1.0.7

Gwiazdka obok nazwy pakietu pokazuje że pakiet jest załadowany ( gotowy do użycia )


Opis zainstalowanych pakietów :

 pkg describe -verbose all


Lista dostępnych pakietów :

  • na Octave-Forge[3]


Odnośniki[edytuj]

  1. Jaahquubel : Octave - szybkie klejenie obrazków cz. 2
  2. stackoverflow question: how-to-execute-m-files-in-octave
  3. Octave-Forge