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上的位置(matlabroot
与userpath
)?
答案 0 :(得分:4)
默认情况下,
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
进行的简单测试证明,事实上userpath
是pathdef.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
。