K. Taubert, W. Wiedl: Programmieren mit MATLAB
UHHReg. RechenzentrumW. WiedlSkripteMatlab Suche - Hilfe

4. Logische Ausdrücke

4.1 Logische Daten und Operationen

Matlab kennt keine eigenständigen logischen Daten und benutzt stattdessen die Zahlen 1 und 0 zur Darstellung der logischen Wert wahr und falsch. Diese beiden Zahlen sind also sowohl logische als auch arithmetische Werte.

Es gibt die logischen Operatoren:

Eine Funktion mit zwei logischen Argumenten und einem logischen Funktionswert ist:

4.2 Vergleichs-Operatoren und -Funktionen

Am häufigsten erhät man logische Werte wohl durch den Vergleich arithmetischer Werte, die als arithmetische Ausdrücke angegeben werden können.

Es gibt sechs Vergleichsoperatoren, die zwei arithmetische Werte vergleichen und einen logischen Wert als Ergebnis liefern:

  1. <, kleiner als
  2. <=, kleinergleich
  3. >, größer als
  4. >=, größer gleich
  5. ==, gleich
  6. ~=, ungleich

Entsprechende Vergleichsfunktionen mit einem arithmetischen Argument sind:

  1. isnan, liefert den Funktionswert 1, wenn das Argument den Wert NaN hat, ansonsten 0,
  2. isinf, liefert den Funktionswert 1, wenn das Argument den Wert Inf hat, ansonsten 0,
  3. isfinite, liefert den Funktionswert 1, wenn das Argument weder den Wert Inf noch den Wert NaN hat, ansonsten 0.
Weitere Funktionen mit logischen Funktionswerten erfahren Sie mit Hilfe der Matlab-Anweisung:
   help ops

Bemerkung: Die logischen Operatoren sind in Matlab eigentlich auch nur Vergleichsausdrücke, wobei immer verglichen wird, ob die Operanden den Wert 0 haben oder nicht. a&b hat den Wert 1, wenn a und b ungleich 0 sind, a|b hat den Wert 1, wenn a oder b ungleich 0 ist. Man kann also auch Ausdrücke wie die folgenden bilden:

» a=2&1
a =
     1
» a=Inf|1
a =
     1
» a=Inf&1
a =
     1
» a=NaN&0
a =
     0
» a=NaN|0
a =
     1

4.3 Logische Ausdrücke

Prioritaetsregeln Klammerung

Ein besonderes Problem bei der Auswertung von logischen Ausdrücken tritt in Matlab dadurch auf, daß die logischen Werte auch Zahlen sind und daß Matlab klaglos bei logischen Operationen auch Zahlen als Operanden akzeptiert, die von 0 und 1 verschieden sind.
Ob im Einzelfall ein logischer oder arithmetischer Ausdruck vorliegt, hängt in Matlab daher von der Reihenfolge der Operationen ab.

» 0|1+1|0
ans =
     1
» (0|1)+(1|0)
ans =
     2


Weiter mit: