在MatLab中查找当前m文件的位置

wfsdck30  于 2022-11-15  发布在  Matlab
关注(0)|答案(4)|浏览(362)

我正在许多不同的位置处理我的MATLAB代码,如果我能让代码知道它在计算机上的位置,那将真的很有帮助。我认为有一个功能可以给我提供准确的信息,但我记不起它叫什么,也不记得在谷歌上找到了它。
我的想法是,我有一个函数myFunc,它需要在自己的目录中有一个文件,该文件可以位于不同计算机上的不同位置。因此,在myFunc中,我想这样做:

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

(也可能是我要查找的函数不返回目录,而是目录+m文件名,但这对我没有什么不同。)

a5g8bdjr

a5g8bdjr1#

mfilename或更好的mfilename('fullpath')

2izufjch

2izufjch2#

在处理类时,我通常喜欢将关联数据保存在类目录中。我使用which获取路径,然后使用fileparts将其切割。

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

其中‘Object’可以是函数名或类名。对我来说,这种方法的优点是您可以从相关的mfile外部调用它。例如,如果需要从基类获取派生类的路径,则这是必要的。

vbopmzt1

vbopmzt13#

另一种方法通过Walter Roberson on the MATLAB answers site,使用dbstack函数:

S = dbstack('-completenames');
S(1).file
68bkxrlz

68bkxrlz4#

对于Path class,您可以使用Path.this获取文件路径,使用Path.here获取父目录。如果需要,可以使用string方法转换为字符串:Path.this.string
免责声明:我是作者。

相关问题