2010-04-27 62 views
42

我正在使用我的MATLAB代碼處理很多不同的位置,如果我能讓代碼知道它在計算機上的位置,它將非常有幫助。我認爲有一個函數能夠提供給我這些信息,但我不記得它是什麼,或者在Google上找到它。在MATLAB中查找當前m文件的位置

這個想法是,我有一個功能myFunc需要一個文件在自己的目錄,它可以在不同的計算機上的不同位置。因此,在myFunc我想要做這樣的事情:

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

(這也可能是我要找的功能不返回目錄,但是目錄+ m文件名,但使差別不大對我來說)

回答

59

mfilename或更好mfilename('fullpath')

+0

非常感謝米哈伊爾! – Jordi 2010-04-27 10:44:53

+3

這隻會在運行完整文件時返回路徑。它從命令窗口或運行單個單元格執行時會返回一個空字符串。 – ConfusinglyCuriousTheThird 2016-03-11 14:48:12

13

在處理類時,我經常希望將關聯的數據保存在類目錄中。我使用which獲取路徑,然後使用fileparts將其切斷。

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

其中'對象'可以是函數或類名。這種方法對我的優點是你可以從有問題的mfile文件之外調用它。例如,如果您需要從基類獲取派生類的路徑,則這是必需的。

1

您應該可以使用mfilenamecd爲此。

mfilename將返回當前正在執行的m文件的名稱。 cd本身會打印當前目錄

+0

優秀,非常簡單而有效。只是一個CD命令:)) – HOPE 2017-06-13 06:00:48