MATLAB函数知道它们定义在哪个目录中吗?

时间:2011-07-06 16:55:05

标签: matlab

  

可能重复:
  Find location of current m-file in Matlab

我想写一个m文件,它将显示定义函数的目录。

例如,如果函数foo.m放在目录c:\ bar和c:\ foo中(文件的完整路径是c:\ bar \ foo.m或c:\ foo \ foo。 m),这两个命令序列

都不在MATLAB路径上
addpath("c:\bar");
foo

会产生结果:我位于目录c:\ bar

,而

addpath("c:\foo");
foo

会产生我位于目录c:\ foo

中的结果

我该如何编写这样的功能?

2 个答案:

答案 0 :(得分:6)

您在寻找mfilename功能吗?可选的fullpath输入参数返回调用函数的m文件的完整路径。

答案 1 :(得分:2)

Praetorian是正确的。您可能还对fileparts函数感兴趣。以下是应该按照您的要求执行操作的代码。

function foo
fprintf('I am located in directory %s', fileparts(mfilename('fullpath')))