MATLAB – Numerische Berechnung und Plots

MATLAB (MATrix LABoratory) ist eine proprietäre Sprache und Umgebung für numerische Berechnungen, Datenanalyse und Visualisierung. Grundlage ist die Arbeit mit Matrizen – fast jeder Befehl arbeitet vektorisiert, also auf ganzen Arrays gleichzeitig. Alternativen: Julia und Python mit NumPy/SciPy.

Grundbefehle

  • help <befehl> – Dokumentation anzeigen
  • doc <befehl> – Dokumentationsfenster öffnen
  • clc – Kommandozeile leeren
  • clear – Variablen löschen
  • who / whos – Variablen auflisten
  • format long / format short – Zahlenformat
  • diary on / off – Session in Datei mitschreiben

Matrizen und Vektoren

v = [1 2 3]            % Zeilenvektor
w = [1; 2; 3]          % Spaltenvektor
A = [1 2; 3 4]         % 2x2-Matrix
A'                     % Transponierte
A * B                  % Matrixmultiplikation
A .* B                 % elementweise Multiplikation
1:5                    % [1 2 3 4 5]
linspace(0, 1, 11)     % 11 Punkte von 0 bis 1
zeros(3), ones(2,4), eye(3), rand(3)

Programmierung

  • if ... elseif ... else ... end
  • for i = 1:10 ... end
  • while bedingung ... end
  • function [out] = name(in) ... end – in einer .m-Datei
  • disp(x) – Ausgabe
  • fprintf('Wert: %f ', x) – formatierte Ausgabe

Plots

plot(x, y)              % Liniendiagramm
plot(x, y, 'r--')       % Farbe/Linienstil
scatter(x, y)           % Punktwolke
bar(x)                  % Balkendiagramm
histogram(x)            % Histogramm
xlabel('x'), ylabel('y'), title('Titel')
legend('a', 'b')
grid on
subplot(2,1,1)          % mehrere Plots in einer Figur
saveas(gcf, 'plot.png') % als Bild speichern

Weitere nützliche Funktionen

  • sum, mean, median, std, min, max – Statistik
  • find(A > 5) – Indizes von Elementen
  • sort, unique, reshape, transpose
  • fzero, fsolve, ode45 – Nullstellen und DGL lösen
  • fminsearch – Optimierung
  • t = readtable('daten.csv'); plot(t) – Daten aus CSV laden

Verwandte Einträge: Julia, R und die Glossar-Einträge Array sowie Algorithmus.