3

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

By default, the 'pathdef.m' file may be located in either the '$MATLABROOT/toolbox/local' directory or the '$USERPATH' directory, where $MATLABROOT and $USERPATH are the directories displayed after entering the commands matlabroot (e.g. C:\Program Files\MATLAB\R2013b) and userpath (e.g. C:\Users\francky\Documents\MATLAB)

So, what determines the location of the pathdef.m file on Windows (matlabroot vs. userpath)?

4

1 回答 1

5

根据此帮助页面

默认情况下,pathdef.mmatlabroot/toolbox/local.

然而,显然不止于此。

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

        MATLABPATH

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

所以路径上唯一的东西就是MATLAB默认matlabroot/toolbox/local会找到的地方。pathdef.m正确的?我是这么认为的,但是一个带有pathdef.min的简单测试userpath证明这实际上userpathpathdef.m. 为什么?因为在 MATLAB 中,工作目录优先于 上的任何内容matlabpath,而启动文件夹由userpath!

多种方法可以指定启动工作目录,可以使用或不使用userpath's 函数形式。我刚刚验证了更改 Windows 快捷方式的“开始于:”属性将阻止pathdef.m默认userpath运行。您可以使用语法在启动文件夹中实现相同的更改,但是除非您使用快捷方式“开始于:”方法,否则userpath(path)启动路径和启动路径之间会有什么区别?userpath

pathdef.m更令人困惑的是,默认under的最后一行matlabroot/toolbox/localp = [userpath,p];,因此在启动时将其添加到路径后,如果有under matlabrc.m,MATLAB 将userpath优先于。matlabrootpathdef.muserpath

于 2013-11-03T05:41:58.777 回答