http://www.mathworks.com/support/solutions/en/data/1-5YQCPR/index.html?product=ML说:



那么,什么决定了Windows上pathdef.m文件的位置(matlabrootuserpath)?

最佳答案

根据this help page:



但是,显然还有更多。

如果我们在matlabpath的顶部添加matlabrc.m,它将在甚至“设置”搜索路径之前告诉使用搜索路径:

        MATLABPATH

    C:\Program Files (x86)\MATLAB\R2013a\toolbox\local
>>

因此,路径上唯一的是matlabroot/toolbox/local,这是MATLAB默认会在其中找到pathdef.m的地方。正确的?我以为是这样,但是对pathdef.m中的userpath进行的简单测试证明,实际上userpathpathdef.m的首要任务。为什么?因为在MATLAB中,工作目录的优先级高于matlabpath 上的任何内容,而启动文件夹由userpath确定!

multiple ways to specify the startup working directory,有和没有使用userpath的功能形式。我刚刚验证过,更改Windows快捷方式的“开始于:”属性将阻止默认pathdef.m中的userpath运行。您可以使用userpath(path)语法在启动文件夹中实现相同的更改,但是除非使用快捷方式“Start in:”方法,否则启动路径和userpath之间会有什么区别?

更令人困惑的是,pathdef.m下的默认matlabroot/toolbox/local的最后一行是p = [userpath,p];,因此在matlabrc.m将其添加到启动路径后,如果ther是userpath下的matlabroot,则MATLAB将给pathdef.m优先于userpath

09-28 02:44