next up previous adam-math, MATmatcc, MMKOMP MMkomp2 Adam WILEY-VCH MATLAB-Filme Projekte und M-Files Stefan Adam privat Mail to stefan.r.a.adam@gmail.com MMkomp ed1 Adam
Nächste Seite: Über dieses Dokument ... Aufwärts: FAQ Diverse Fragen Vorherige Seite: FAQ Diverse Fragen

Prominente Fehler bei MATLAB Aufrufen

Im Verlauf des Unterrichtes bei meinen Studenten, sowie allgemein beim Arbeiten mit MATLAB bei meinen Kollegen und mir selbst, sind gewisse Fehler beim Aufrufen von MATLAB häufiger aufgetreten als andere. Als allgemeine Hinweise werden einige davon hier aufgeführt. Seltener aufgetretene Fehler, die aber aufgrund von wenig aussagekräftigen Fehlermeldungen schwer zu korrigieren waren, haben in dieser Liste ebenfalls ihren Platz gefunden.

A
Typische Anfängerfehler, auch bei Fortgeschrittenen vorkommend

-
??? Undefined function or variable 'skriptname'
Häufig ein Tippfehler beim Namen oder auch nur ein Fehler in der Gross- Kleinschreibung. (MATLAB ist empfindlich auf Gross- Kleinschreibung!)

-
??? Undefined function or variable 'skriptname' - trotz getestetem,richtigem Namen
MATLAB betrachtet ab Version R2006a nicht mehr alle Files mit Endung .m im aktiven subdirectory als Bestandteil des Suchbereiches.
Abhilfe: Den MATLAB Such-Pfad mit set path anpassen, so dass das gesamte Subdirectory, in welchen das File steht, dazugenommen wird.

P
Verdacht auf vergessene Punkt-Operatoren

-
mtimes: Inner matrix dimensions must agree
Dies ist der klare Spitzenreiter unter den MATLAB Fehlermeldungen. In den meisten Fällen wollte man Vektoren punktweise multiplizieren und hat aus Versehen den normalen Operator statt den Punkt-Operator verwendet.
Falls man doch Matizenoperationen ausführen wollte, muss man mit dem Befehl whos die Dimensionen der beteiligten Matrizen prüfen. Gelegentlich passieren einem Verwechslungen zwischen Breite und Höhe von Rechtecksmatrizen, dann hilft eventuell das Transponieren.

-
mrdivide: Matrix dimensions must agree
Bei vielen Fehlermeldungen dieses Typs wurde ebenfalls ein normaler Operator statt dem Punkt-Operator verwendet

-
mpower: Matrix must be square
Häufig war auch in diesem Fall eine elementweise Potenzierung gemeint, aber nur der normale Operator statt dem Punkt-Operator geschrieben worden. (Die Fälle bei denen man eine Matrix im Sinne der Matrix-Multiplikation potenzieren will sind eher selten. Dann muss die Matrix quadratisch sein, wie der Diagnostik-Hinweis sagt.)

M
Inkompatible Matrix-Dimensionen

-
plus, minus: Matrix dimensions must agree
Für Addition und Subtraktion müssen die Matrix-Dimensionen exakt zusammenpassen. Auch hier sollte man mit dem Befehl whos die Dimensionen der beteiligten Matrizen prüfen. Gelegentlich passieren einem Verwechslungen zwischen Breite und Höhe von Rechtecksmatrizen, dann hilft eventuell das Transponieren.

D
Fehler, die keine auswertbare Diagnostik liefern

-
Falscher Skript-Name Ein recht schwierig zu interpretierender Fehler passierte durch das Vergeben eines Skript-Namens, der von MATLAB anders interpretiert wurde. Der Name hiess ``40-7.m'' zum Lösen der Übung 40.7. Es kam kein Plot und kein Zwischenoutput, nur immer ans = 33. Der MATLAB eigene Editor hat zwar den Namen geschluckt, die Ausführung hat aber nur die Berechnungs-Aufgabe 40-7 gelöst und gar kein File gesucht.
Fazit: Skript- und Function-Namen müssen mit einem Buchstaben anfangen und dürfen keine Bindestriche (= Minuszeichen) enthalten!

-
??? The function, script, or class skriptname cannot be indexed using {} or . indexing.
Diese Diagnostik erscheint beim ganz einfachen und bei Anfängern häufigen Fehler, in einem Skript-Aufruf das ``.m'' am Ende des Filenamens auch noch einzugeben.
Fazit: Skript-Aufruf immer ohne die Endung ``.m'' !

-
Unverständliche Fehlerdiagnostik bei Berechnungen mit komplexen Zahlen 
Nach langem Suchen fand ich heraus, dass ich vorher die Schleifenvariable ``i'' verwendet hatte und diese nicht mehr die Imaginäre Einheit enthielt.
Fazit: Variablen ``i'' und ``j'' nie selbst benützen, sondern reserviert lassen für komplexe Zahlen!
Fazit: Immer wieder Aufräumen mit dem clear-Befehl!

P
Parameter-Übergabe bei Funktionen

-
Input argument ... is undefined
Meist ein Fehler bei der Anzahl, der Abfolge oder der Schreibweise von Eingabe-Variablen in der Parameterliste bei einem Funktions-Aufruf.
Kontrollmöglichkeiten ergeben sich mit dem Aufruf help funktionsname, weil dies die genaue Signatur (= Aufruf und zugehörige Parameter angibt).
Das Ausnützen dieser help-Funktion sei allen MATLAB-Anwendern für ihre selbst programmierten Funktionen dringend empfohlen! Es braucht dazu nur einige Kommentarzeilen vor der ersten ausführbaren Zeile in der Funktion mit der Kurzberschreibung der Funktion und von deren Signatur.

-
Output argument ... not assigned during call
Im ausführenden Teil einer selbst programmierten Funktion fehlt die Zuweisung des Wertes an die in der Startzeile deklarierten Ausgabe-Variablen.


next up previous adam-math, MATmatcc, MMKOMP MMkomp2 Adam WILEY-VCH MATLAB-Filme Projekte und M-Files Stefan Adam privat Mail to stefan.r.a.adam@gmail.com MMkomp ed1 Adam
Nächste Seite: Über dieses Dokument ... Aufwärts: FAQ Diverse Fragen Vorherige Seite: FAQ Diverse Fragen
2018-09-15