MATLAB ist eine Software zur Lösung von mathematischen Problemen. Die Anwendung gehört dem Unternehmen MathWorks. Die Software ist vor allem für die Berechnung von numerischen Problemen hilfreich. Dabei sind alle Zahlen grundsätzlich Vektoren. Die Langform des Namens ist MATrix LABoratory. Die Software wird oft in Hochschulen eingesetzt.
Wie schwer so ein Informatikstudium ist habe ich ja schon im Artikel Ist das Informatikstudium schwer? beschrieben. Eine Schwierigkeit ist, dass viele angehende Informatikstudenten die Grundkenntnisse fehlen, welche im Studium vorrausgesetzt werden. Zum Beispiel in Fächern, welche viel mit Mathematik zu tun haben, wird oft die Software MATLAB eingesetzt.
In diesem Artikel zeige ich dir kurz und knapp die Grundlagen von MATLAB. Dieser Artikel wird nicht besonders lange, damit du dir wirklich schnell und einfach einen Überblick über MATLAB beschaffen kannst.
Vektoren
In MATLAB sind alle Zahlen gleichzeitig Vektoren. Dies bedeutet, dass eine einzelne Zahl wie 5 in Wirklichkeit ein 1×1 großer Vektor ist. Für Programmierer ist es wahrscheinlich gebräuchlicher die Vektoren als “Arrays” zu bezeichnen. Mit einer einfachen Variablenzuweisung von einer Zahl zu einer Variable erstellst du einen 1×1-Array:
x = 5
% Ist äquivalent zu:
x = [5]
Code language: Matlab (matlab)
Einen Zeilenvektor kannst du ähnlich einfach erstellen:
x = [5 4 3 2 1]
% Ist äquivalent zu:
x = [5,4,3,2,1]
% Ist äquivalent zu:
x = [5, 4, 3, 2, 1]
% Erzeugt die Ausgabe:
% x = 5 4 3 2 1
Code language: Matlab (matlab)
Bei einem Spaltenvektor werden die Elemente mit einem Strichpunkt getrennt:
x = [5;4;3;2;1]
% Ist äquivalent zu:
x = [5; 4; 3; 2; 1]
% Erzeugt die Ausgabe:
%{
x =
5
4
3
2
1
%}
Code language: Matlab (matlab)
Um einen Zeilen- und Spaltenvektor zu kombinieren, kannst du einfach beide Schreibweisen verbinden:
x = [4 3; 2 1]
% Erzeugt die Ausgabe:
%{
x =
4 3
2 1
%}
Code language: Matlab (matlab)
Als Informatikstudent bist du es sicher gewohnt bestimmte Funktionen zu verschachteln. Auch in Matlab ist dies ganz einfach:
x = [sqrt(4) sqrt(25); 2 5]
% Erzeugt die Ausgabe:
%{
x =
2 5
2 5
%}
Code language: Matlab (matlab)
In der Mathematik und der Informatik braucht man oft Vektoren, welche bestimmte Eigenschaften haben. Hierfür hält Matlab einige Tricks bereit.
Ein sehr langen Vektor erstellst du mit dem : Operator. Dieser Operator ist in diesem Kontext als “bis” zu übersetzen. Du möchtest alle Zahlen von 1 bis 5? Kein Problem:
x = 1:5
% Erzeugt die Ausgabe (Leerzeilen entfernt):
%{
x =
1 2 3 4 5
%}
Code language: Matlab (matlab)
Allerdings ist der Abstand zwischen den Zahlen hier immer gleich 1. Wenn du andere Abstände möchtest, musst du dies Matlab mitteilen. Mit der Syntax <Anfang>:<Abstand>:<Ende> kannst du Matlab den Abstand übergeben:
x = 0:5:20
% Erzeugt die Ausgabe (Leerzeilen entfernt):
%{
x =
0 5 10 15 20
%}
Code language: Matlab (matlab)
Trotzdem wird es Fälle geben, in denen du nicht weißt, welchen Abstand deine Elemente haben sollen. Auch das ist kein Problem. Die Funktion linspace() hilft hier. Allerdings ist die Syntax etwas anders als die 0:5:20 Syntax: linspace(<Anfang>,<Ende>,<Anzahl der Elemente>). Hier ein Beispiel:
x = linspace(0,20,5)
% Erzeugt die Ausgabe (Leerzeilen entfernt):
%{
x =
0 5 10 15 20
%}
Code language: Matlab (matlab)
Auch Zufallszahlen können generiert werden. Aber Vorsicht: Dies sind meiner Meinung nach keinerlei sichere Zufallszahlen. Nicht für Passwörter oder Kryptografische Anwendungen nutzen. Außerdem kann man einen Array mit Nullen füllen.
x = rand(2)
% Erzeugt die Ausgabe (Leerzeilen entfernt):
%{
x =
0.8147 0.1270
0.9058 0.9134
%}
x = zeros(3,2)
% Erzeugt die Ausgabe (Leerzeilen entfernt):
%{
x =
0 0
0 0
0 0
%}
Code language: Matlab (matlab)
Die Frage, welche sich nun stellt, ist, wie man denn eigentlich auf einzelne Elemente eines Vektors zugreift. Auf Zahlen in einem Vektor kann man in Matlab mithilfe einfacher Klammern zugreifen. Mit dem Keyword “end” springst du jeweils zum Ende einer Reihe oder einer Zeile.
x = rand(2)
a = x(2, 1)
b = x(end, 1)
c = x(2, end)
d = x(2, end-1)
% Erzeugt die Ausgabe (Leerzeilen entfernt):
%{
x =
0.6324 0.2785
0.0975 0.5469
a = 0.0975
b = 0.0975
c = 0.5469
d = 0.9649
%}
Code language: Matlab (matlab)
Mit dem : Operator kannst du gleich eine ganze Reihe oder Spalte auf einmal selektieren. Gleichzeitig wird der Operator auch als “bis” Operator genutzt.
x = rand(4)
a = x(1, :)
b = x(:, 1)
c = x(:, 2:3) %Alle Zeilen in der 2ten bis 3ten Spalte
% Erzeugt die Ausgabe (Leerzeilen entfernt):
%{
x =
0.8909 0.1493 0.8143 0.1966
0.9593 0.2575 0.2435 0.2511
0.5472 0.8407 0.9293 0.6160
0.1386 0.2543 0.3500 0.4733
a =
0.8909 0.1493 0.8143 0.1966
b =
0.8909
0.9593
0.5472
0.1386
c =
0.1493 0.8143
0.2575 0.2435
0.8407 0.9293
0.2543 0.3500
%}<br />
Code language: Matlab (matlab)
MATLAB Graph, Plot, Vektoren zeichnen
Einen einfachen Vektor x plottest du in Matlab mit “plot(x)”. Dabei nimmt MATLAB deine Werte aus x und zeichnet diese auf der y-Achse ein. Die X-Achse wird dann durch die Anzahl der Elemente in x bestimmt.
hold off % Ignoriere diesen Befehl fürs erste
x = rand(1, 10)
plot(x)
Code language: Matlab (matlab)
Du kannst zwei Vektoren gegeneinander plotten. Dabei wird jedem Wert des einen Vektors (x-Wert) ein zweiter Wert des anderen Vektors als y-Wert zugewiesen. Dann wird dieser geplottet. Dabei kannst du durch den dritten Parameter auch die Farbe und Form des Graphs festlegen. Zum Beispiel (“r”) für eine rote Linie.
Extra-Tipp: Wenn du zwei Graphen übereinander zeichnen möchtest, kannst du einfach die plot()-Funktion zweimal nutzen. Wichtig ist aber, dass du vor dem zweiten plot()-Befehl das Kommando “hold on;” schreibst. Sonst stellt MATLAB den Vektor in zwei unterschiedlichen Bildern dar.
a = [1 2 2.5 3 4; 1.5 2 3 4 5]
x = a(1, :)
y = a(2, :)
plot(x, y, "r")
hold on;
plot(x, y, "b*")
%{
Erstellt einen Graph mit den
Koordinaten
(a(1, 1), a(2, 1)),
...,
(a(1, 5), a(2, 5))
Also hier:
(1, 1.5), ..., (4, 5)
%}
hold off; % Beendet hold on
Code language: Matlab (matlab)
Findest du diese Art von Artikeln gut? Kurze Zusammenfassungen von Grundlagen, welche dir im Informatikstudium helfen. Wenn du zu einem bestimmten Thema eine kurze Zusammenfassung haben möchtest, dann schreib deinen Vorschlag gerne als Kommentar!
Artikel-Titlebild von Ian Panelo von Pexels
- Daniel