2010-04-27 4 views
42

Ich arbeite an meinem Code MATLAB in einer Reihe von verschiedenen Orten, und es würde wirklich helfen, wenn ich den Code auf seinen Standort auf dem Computer aufmerksam machen könnte. Ich denke, es gibt eine Funktion, die mir genau diese Information gibt, aber ich kann mich nicht erinnern, wie es heißt oder finde es bei Google.Speicherort der aktuellen m-Datei in MATLAB

Die Idee ist, dass ich eine Funktion myFunc habe, die eine Datei in einem eigenen Verzeichnis benötigt, das sich an verschiedenen Orten auf verschiedenen Computern befinden kann. So in myFunc ich so etwas wie dies tun wollen:

dir = theFunctionImLookingFor; 
system(fullfile(dir, 'someApp.exe')); 

(Es könnte auch sein, dass die Funktion, die ich suche nicht das Verzeichnis zurückgibt, aber das Verzeichnis + m-Dateiname, aber das macht wenig Unterschied für mich)

Antwort

59

mfilename oder besser mfilename('fullpath')

+0

Vielen Dank, Mikhail! – Jordi

+3

Dies gibt nur den Pfad zurück, wenn die vollständige Datei ausgeführt wird. Sie gibt eine leere Zeichenfolge zurück, wenn sie im Befehlsfenster oder beim Ausführen einer einzelnen Zelle ausgeführt wird. – ConfusinglyCuriousTheThird

13

Wenn ich mit Klassen arbeite, behalte ich gerne assoziierte Daten im Klassenverzeichnis. Ich benutze which, um den Pfad zu bekommen und dann fileparts, um es zu zerhacken.

[folder, name, ext] = fileparts(which('object')); 

Dabei kann 'Objekt' ein Funktions- oder Klassenname sein. Der Vorteil dieser Methode ist für mich, dass Sie sie von außerhalb der betreffenden Datei aufrufen können. Dies ist erforderlich, wenn Sie beispielsweise den Pfad zu einer abgeleiteten Klasse von der Basisklasse abrufen müssen.

1

sollten Sie in der Lage sein mfilename und für diese CD zu verwenden.

mfilename gibt den Namen der aktuell ausgeführten m-Datei zurück. cd von alleine wird das aktuelle Verzeichnis

+0

Ausgezeichnet, sehr einfach und effektiv. Nur ein CD-Befehl :)) – HOPE

Verwandte Themen