2017-11-21 4 views
8

MATLAB bietet die mfilename Funktion. Es gibt den Namen der Datei zurück, in der die Funktion aufgerufen wurde, aber leider wird der Dateiname ohne extension zurückgegeben.Wie kann ich die Dateiendung des aktuell laufenden Codes finden?

So zum Beispiel, wenn wir eine Datei namens myfile.m haben und wir nennen mfilename in der Datei, wird es die Zeichenkette zurück 'myfile' aber nicht 'myfile.m'

Ich hatte auch einen Blick auf die fileparts Funktion, aber es ist nicht sinnvoll Entweder weil es nur die von Ihnen angegebene Zeichenfolge analysiert.

Ich entwickle ein Stück Code hat ein anderes Verhalten basierend auf der Dateierweiterung. So muss es zum Beispiel wissen, ob die Erweiterung der Datei .m oder .p bei run time ist.

Sie können die Liste der mit MATLAB here verbundenen Erweiterungen überprüfen.

Wie kann ich es tun?

Antwort

9

Looking at the docs, es scheint, als ob Sie die Informationen, die Sie benötigen, von der dbstack Befehl erhalten, es wird einige kleinere zusätzliche Verarbeitung obwohl.

+3

'[ST, I] = dbstack ('- completenames')' ohne '1' funktionierte für mich. Dann verarbeite ich 'ST.file' mit' fileparts', um die Dateiendung zu erhalten. Danke vielmals. – codeaviator

Verwandte Themen