2 Gnu Octave | |
→ | 2.6 Eingabe |
Der Abschnitt "Expressions" in der Octave-Referenz beschreibt
die Operatoren detaillierter als die Kurzübersicht hier,
insbesondere enthält der Abschnitt auch ausführliche Angaben zur
Priorität der Operatoren.
Für mathematische Operatoren gelten die üblichen Vorrangregeln. Im
Zweifelsfall (z.B. bei unüblichen Operator-Kombinationen) sollten
Klammern gesetzt werden, dies erhöht auch die Lesbarkeit.
^ ** |
Potenzieren Anwendung auf Matrizen und Vektoren bewirkt u.U. mehrfache Matrizenmultiplikation. |
* | Multiplikation Anwendung auf Matrizen und Vektoren bewirkt Matrizenmultiplikation. |
/ | Division Anwendung auf Matrizen und Vektoren bewirkt Matrizenmultiplikation mit inverser Matrix des rechten Operanden. |
\ | Linksseitige Division M\y bewirkt M-1y. |
+ | Addition |
- | Subtraktion |
.^ .** |
Elementweises Potenzieren |
.* | Elementweise Multiplikation |
./ | Elementweise Division |
.\ | Elementweise linksseitige Division |
Hinweis: Zwischen Zahlenwerten und elementweisen
Operatoren immer Leerzeichen setzen, auch wenn es in GNU Octave
nicht unbedingt erforderlich.
Beispiel: In Octave wird "1./m" als "1 ./ m"
interpretiert, dies ist in anderen Sprachen - z.B. Scilab - jedoch
nicht der Fall, hier wäre es "1. / m".
< | Kleiner als |
<= | Kleiner als oder gleich |
== | Gleich |
!= ~= |
Ungleich |
>= | Größer als oder gleich |
> | Größer als |
& | und-Verknüpfung |
| | oder-Verknüpfung |
! ~ |
Negation |
&& | und-Verknüpfung |
|| | oder-Verknüpfung |
Bei Anwendung dieser Operatoren in Bedingungen für if und while
werden nicht notwendigerweise alle Operatoren erst ausgewertet.
Falls sich nach Auswertung des linken Operators ein Wert false
(&&) bzw. true (||) herausstellt, muss der rechte Operator
nicht erst ausgewertet werden.
Im Beispiel
x = 3; if (x > 1) || (x < 4) ... endif
steht nach dem ersten Test x>1 bereits das Ergebnis der Oder-Verknüpfung fest. Der zweite Test x<4 wird somit gar nicht erst durchgeführt.