代码之家  ›  专栏  ›  技术社区  ›  Jordi

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

  •  45
  • Jordi  · 技术社区  · 14 年前

    我正在努力 MATLAB 在多个不同的位置编码,如果我能让代码知道它在计算机上的位置,这将非常有用。我想有一个函数能给我准确的信息,但是我不记得它叫什么,也不记得在google上找到它。

    我的想法是我有一个功能 myFunc 它需要一个位于自己目录中的文件,该目录可以位于不同计算机上的不同位置。所以在 米芬克 我想这样做:

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

    (也可能是我正在寻找的函数没有返回目录,而是返回目录+m文件名,但这对我来说没什么区别。)

    4 回复  |  直到 9 年前
        1
  •  64
  •   Mikhail Poda    14 年前

    mfilename 或更好 mfilename('fullpath')

        2
  •  16
  •   Tom Makin    12 年前

    在处理类时,我通常喜欢将关联的数据保存在类目录中。我用 which 找到路然后 fileparts 把它切碎。

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

    其中“object”可以是函数名或类名。这种方法对我的好处是,您可以从有问题的mfile外部调用它。例如,如果需要从基类获取派生类的路径,这是必要的。

        3
  •  9
  •   nibot    13 年前

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

    S = dbstack('-completenames');
    S(1).file
    
        4
  •  1
  •   user5493412    9 年前

    你应该可以使用 文件名 光盘 为此。

    文件名 将返回当前正在执行的m文件的名称。 光盘 将打印当前目录