IF-Auswahl
Der IF-Befehl ist eine klassische Wenn-Dann-Folge. Die Entscheidung wird anhand einer Bedingung getroffen. Dazu werden im Allgemeinen die folgenden Vergleichsoperatoren verwendet: ==, <, >, <=, >=, und ~=.
Wichtig: Die Nutzung von == statt eines einfachen = ist bei Vergleichen erforderlich, da nur so Matlab erkennen kann, dass es sich um einen booleschen Vergleich und nicht um eine Zuweisung handelt. Verwechseln Sie dies nicht! Der Operator ~= ist ein Vergleich auf Ungleichheit (z.B. 1~=1 ist falsch, 1~=2 ist wahr).
Die Syntax lautet:
if
gefolgt von einer Bedingung.
Beendet wird sie wie alle Strukturen in MATLAB mit dem Befehl:
end
Optional kann die if-Abfrage noch um die Befehle elseif und/oder else erweitert werden. Dabei ist elseif auch an eine Bedingung geknüpft und else tritt ein, wenn alle anderen Bedingungen nicht erfüllt sind.
Beispiel:
% Zuweisung eines Wertes
a = 3;
if a == 6
b = 0;
elseif a ~= 4
b = 1;
else
b = 2;
end
% Ausgabe
b
Für diesen Fall liefert die Abfrage b = 1. Wäre a = 6 folgt b = 0. Wäre a = 4 folgt b = 2.
Weiterhin können mehrere Bedingungen durch logische Operatoren verknüpft werden. Logische Operatoren kennen Sie aus der theoretischen Einführung und der GeDV-Vorlesung. Auf diese Weise können und sollten mehrfach verschachtelte if-Abfragen vermieden werden.
if (WirdEsRegnen == true & IchGeheZuFuss == true)
disp('Nehme Schirm mit');
end
Ohne die Verwendung des &-Operators müsste in den if-(Abfrage-) Block ein weiterer if-Block folgen. Dies macht - speziell bei vielen notwendigen Vergleichen - den Code schwer lesbar und reduziert sehr deutlich die Ausführungsgeschwindigkeit eines solchen Programmes.