In Matlab gibt es Restriktionen für die Bildung von Namen: Einem Buchstaben können weitere Buchstaben, Ziffern und der Unterstrich folgen. Andere Zeichen sind (sinnvollerweise) nicht erlaubt. Ein Name kann (in den neueren Matlab-Versionen) maximal 63 Zeichen enthalten (abzufragen mit der Function namelengthmax).
Dass sogar die Berechnung von cos1 funktioniert, obwohl sin und tan auf der rechten Seite wie die Functions (scheinbar) mit einem Argument aufgerufen werden, liegt an der Interpretation von Variablen in Matlab: Einfache Variablen sind auch Matrizen (mit nur einem Element), auf der rechten Seite wird also jeweils das erste Element der Matrizen sin bzw. cos angesprochen. Deshalb führt die Berechnung von cos2 zu einer Fehlerausschrift. Andererseits ist diese Verhaltensweise auch ein nicht zu unterschätzender Vorteil: Man braucht sich nicht bei jedem zu vergebenden Namen die Frage zu stellen, ob dieser vielleicht mit dem Namen einer der unglaublich vielen Matlab-Functions kollidiert. Aber: Vorsicht bei vorübergehend unbeaufsichtigten Keyboards während einer Matlab-Session: Ein Scherzbold kann blitzschnell einmal pi=9 eingeben. Das clear all am Anfang eines Matlab-Scripts schützt in aller Regel vor solchen Scherzen. |
Kollision eines Dateinamens mit dem Namen einer Variablen
Mit einigen Eingaben direkt in das Command Window wird das deutlich:
Wenn in das Command Window nur Flaeche eingegeben wird, reagiert Matlab mit der Ausgabe des Wertes der Variablen Flaeche. Wenn nun zunächst clear all eingegeben wird (löscht alle Variablen) und danach noch einmal Flaeche eingegeben wird, existiert eine Variable dieses Namens nicht mehr und Matlab sucht nach einem Script Flaeche.m, findet es und arbeitet es ab. Es ist sicher sinnvoll, sich die folgende Modellvorstellung von der Arbeit von Matlab klar zu machen. |
So arbeitet Matlab:
|
Das oben demonstrierte Beispiel (Flächenberechnung) hätte man durchaus noch etwas verwirrender anlegen können, wenn man die 2. Variante des Scripts (um die erste nicht zu überschreiben) als Nach der oben unter "So arbeitet Matlab" gegebenen Modellvorstellung ist klar, was passiert ist: Der Start eines Matlab-Scripts mit dem Namen Flaeche-2.m aus dem Editor heraus ist gleichwertig mit dem Eingeben von Flaeche-2 in das Command Window. Dies wird als arithmetischer Ausdruck interpretiert, eine Variable Flaeche ist bekannt, also kann gerechnet und ausgegeben werden (und das Script Dass Fehler dieser Art recht beliebt sind, hat der Autor dieser Zeilen mit seinen Studenten immer wieder erfahren, weil den Dateien über ihren Namen gern auch Datum-Informationen beigefügt werden. Und weil Windows fast jede Art von Dateibezeichnung gestattet, ist auch der Dateiname erlaubt, der in der Kopfleiste des folgenden Editor-Fensters zu sehen ist (vergeben am 27. Mai 2006). Dass die Antwort im Command Window nicht das Ergebnis der sin-Berechnung ist, kann man sofort erkennen:
|