我正在许多不同的位置处理我的MATLAB代码,如果我能让代码知道它在计算机上的位置,那将真的很有帮助。我认为有一个功能可以给我提供准确的信息,但我记不起它叫什么,也不记得在谷歌上找到了它。
我的想法是,我有一个函数myFunc
,它需要在自己的目录中有一个文件,该文件可以位于不同计算机上的不同位置。因此,在myFunc
中,我想这样做:
dir = theFunctionImLookingFor;
system(fullfile(dir, 'someApp.exe'));
(也可能是我要查找的函数不返回目录,而是目录+m文件名,但这对我没有什么不同。)
4条答案
按热度按时间a5g8bdjr1#
mfilename或更好的
mfilename('fullpath')
2izufjch2#
在处理类时,我通常喜欢将关联数据保存在类目录中。我使用which获取路径,然后使用fileparts将其切割。
其中‘Object’可以是函数名或类名。对我来说,这种方法的优点是您可以从相关的mfile外部调用它。例如,如果需要从基类获取派生类的路径,则这是必要的。
vbopmzt13#
另一种方法通过Walter Roberson on the MATLAB answers site,使用
dbstack
函数:68bkxrlz4#
对于Path class,您可以使用
Path.this
获取文件路径,使用Path.here
获取父目录。如果需要,可以使用string
方法转换为字符串:Path.this.string
。免责声明:我是作者。