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 bstattinv(A) * brechnen — schneller und numerisch stabiler. - Vektorisieren:
x.^2statt Schleifen über Elemente.
Verwandte Grundlagen: Scilab-Befehle (freie MATLAB-Alternative), Python-Befehle (NumPy/SciPy), R-Befehle (Statistik).