是什么决定了Windows上'pathdef.m'文件的位置?

时间:2013-11-03 04:49:40

标签: windows matlab configuration-files

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

  

默认情况下,'pathdef.m'文件可能位于   '$ MATLABROOT / toolbox / local'目录或'$ USERPATH'目录,   其中$ MATLABROOT和$ USERPATH是之后显示的目录   输入命令matlabroot(例如C:\ Program Files \ MATLAB \ R2013b)和userpath(例如C:\ Users \ francky \ Documents \ MATLAB)

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

1 个答案:

答案 0 :(得分:4)

根据this help page

  

默认情况下,pathdef.m位于matlabroot/toolbox/local

然而,显然还有更多。

如果我们将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将此添加到启动路径后,MATLAB将然后userpath优先于matlabroot,如果pathdef.m下的userpath