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:

Skript
if

gefolgt von einer Bedingung.

Beendet wird sie wie alle Strukturen in MATLAB mit dem Befehl:

Skript
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:

Skript
% 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.

Skript
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.