2016-06-15 25 views
2

Ich verwende die Funktion dtw in der neuesten MATLAB-Version, und möchte ein paar Teile davon optimieren. Um loszulegen, ich tippte:Undefinierte Funktion in MATLAB

edit dtw 

ich den resultierenden Code der Datei gesichert dtw_Copy.m genannt, und änderte den Namen der Funktion dtw_Copy auch. Geht man durch die Code Zeile für Zeile mit einem Satz von Eingangsparametern x und y, um die Linie 90:

Undefinierte Funktion ‚getmutexclopt‘ für Eingabeargumente vom Typ:

[metric, varargin] = getmutexclopt({'absolute','euclidean','squared','symmkl'},'euclidean',varargin); 

I eine Fehlermeldung 'Zelle'.

ich auch diese Fehlermeldung erhalten, wenn ich durch die Linie der Codezeile nicht gehen, und einfach dtw_Current(x,y) geben, nachdem erneut einen Satz von Eingang Prüfparameter x und y.

Beim Laufen:

help 'getmutexclopt' 

wird angezeigt, dass getmutexclopt nicht gefunden wird. Ich habe auch versucht:

edit 'getmutexclopt' 

Aber mir wurde gesagt, dass currentDirectory/getmutexcloptm.m nicht existiert.

Ich habe versucht:

which getmutexclopt 

Und sagt mir, dass getmutexclopt nicht gefunden wird.

Online suchen, fand ich a resource that seemed straight-forward in Fehlersuche diesen Fehler. Die Ressource empfiehlt, sicherzustellen, dass die Toolbox installiert ist. Ich bin mir unsicher, welche Toolbox die Funktion getmutexclopt unterstützt, und so tippe ich den Funktionsnamen in die website ein. Dies führt zu einer Nachricht, die besagt: "Ihre Suche - getmutexclopt - hat keine Dokumente gefunden."

Die Ressource empfiehlt auch, den für den Zugriff auf die Funktion verwendeten Pfad zu überprüfen. Ich folgte den Anweisungen, dies zu tun, und wenn ich getippt:

which -all getmutexclopt 

I erhalten:

currentDirectory\matlab\toolbox\signal\signal\private\getmutexclopt.m % Private to signal 

Dies scheint darauf hinzudeuten, dass die Funktion in der Signal Toolbox ist, was privat ist? Gibt es eine Möglichkeit, noch dtw_Current(x,y) laufen zu lassen und/oder seinen Inhalt zeilenweise ablaufen zu lassen?

+0

Wo haben Sie 'dtw_Current' gespeichert? [Private Funktionen] (http://www.mathworks.com/help/matlab/matlab_prog/private-functions.html) sind nur für Funktionen im Ordner direkt über dem privaten Unterordner verfügbar. – excaza

Antwort

1

Ja, dieses Problem tritt auf, weil die Funktion getmutexclopt eine private function ist. Sie müssen eine Kopie dieser Funktion erstellen, wenn Sie sie sicher von Ihrer Kopie von dtw abrufen möchten. Es scheint, eine grundlegende Funktion (geben Sie edit private/getmutexclopt.m in Ihrem Befehlsfenster), so dass Sie möglicherweise in der Lage, es als Unterfunktion zu Ihrem dtw_Copy/dtw_Current hinzuzufügen.

Siehe auch this question - das Hinzufügen privater Funktionen zum Suchpfad ist nicht zulässig.

Verwandte Themen