GNU Octave ist eine freie, MATLAB-kompatible Sprache für numerisches Rechnen. Entwickelt von John W. Eaton (erste Alpha 0.60 am 4. Januar 1993, GNU-Projekt, GPL), eignet sich Octave für lineare Algebra, Signalverarbeitung, Optimierung und Datenanalyse — die Syntax ist weitgehend identisch mit MATLAB-Befehlen, sodass viele .m-Skripte unverändert laufen.

Start und Ausführung

octave                     # interaktive Shell
octave --no-gui --silent   # Kopfzeilen unterdrücken
octave --eval "x = 2 + 3; disp(x)"   # Einzeiler
octave script.m            # Skript ausführen

Octave läuft als GUI, als Konsole oder als Teil eines Shell-Skripts (Batch-Modus).

Wichtige Befehle

  • Hilfe: help plot, doc plot, lookfor suchbegriff
  • Workspace: whos, who, clear, exist('x')
  • Vektoren/Matrizen: x = linspace(0, 2*pi, 100), zeros(3), ones(2,4), eye(3), rand(2,2)
  • Lineare Algebra: A b (lineares Gleichungssystem), eig(A), inv(A), det(A), transpose(A)
  • Signalverarbeitung: fft(x), ifft(x), conv, filter
  • I/O: save daten.mat x y, load daten.mat, fprintf('%f ', x), disp(x)

Pakete (Packages)

pkg list                 # installierte Pakete
pkg install -forge signal   # aus dem Octave-Forge-Repository
pkg load signal          # Paket für die Sitzung aktivieren

Octave-Forge bietet Pakete für Signalverarbeitung, Statistik, Optimierung, Symbolik und mehr.

Plotting

plot(x, sin(x), 'r-', x, cos(x), 'b--')
hold on; plot(x, x.^2); hold off
grid on; xlabel('Zeit'); ylabel('Amplitude'); title('Sinuskurve'); legend('sin','cos')
print('plot.png', '-dpng')   # in Datei exportieren

Frühere Octave-Versionen nutzten Gnuplot als Standard-Grafik-Backend; seit Octave 4.x ist der Qt-/OpenGL-Renderer Standard, Gnuplot bleibt optional verfügbar.

Praxis-Tipps

  • Skripte in .m-Dateien schreiben, Funktionen in separaten Dateien definieren (Name = Dateiname).
  • Mit A b statt inv(A) * b rechnen — schneller und numerisch stabiler.
  • Vektorisieren: x.^2 statt Schleifen über Elemente.

Verwandte Grundlagen: Scilab-Befehle (freie MATLAB-Alternative), Python-Befehle (NumPy/SciPy), R-Befehle (Statistik).