在MATLAB中查找当前m文件的位置
我在许多不同的地方编写代码,如果我能让代码知道它在计算机上的位置,那将非常有帮助。我想有一个函数能准确地给出这些信息,但我记不起它叫什么,也记不起它在谷歌上的名字 我的想法是,我有一个函数在MATLAB中查找当前m文件的位置,matlab,Matlab,我在许多不同的地方编写代码,如果我能让代码知道它在计算机上的位置,那将非常有帮助。我想有一个函数能准确地给出这些信息,但我记不起它叫什么,也记不起它在谷歌上的名字 我的想法是,我有一个函数myFunc,它需要在自己的目录中有一个文件,可以在不同的计算机上的不同位置。因此,在myFunc中,我想做如下操作: dir = theFunctionImLookingFor; system(fullfile(dir, 'someApp.exe')); (也可能是我正在寻找的函数没有返回目录,而是返回目录
myFunc
,它需要在自己的目录中有一个文件,可以在不同的计算机上的不同位置。因此,在myFunc
中,我想做如下操作:
dir = theFunctionImLookingFor;
system(fullfile(dir, 'someApp.exe'));
(也可能是我正在寻找的函数没有返回目录,而是返回目录+m文件名,但这对我来说没有什么区别。)或者更好的mfilename('fullpath')
另一种方法,通过使用函数:
S = dbstack('-completenames');
S(1).file
在处理类时,我通常喜欢将相关数据保存在类目录中。我过去常常找到那条路,然后把它劈开
[folder, name, ext] = fileparts(which('object'));
其中“object”可以是函数名或类名。对我来说,这种方法的优点是,您可以从所讨论的mfile外部调用它。例如,如果需要从基类获取派生类的路径,则必须执行此操作。此操作仅在运行完整文件时返回路径。从命令窗口执行或运行单个单元格时,返回空字符串。