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

Fra*_*urt 3 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) 和用户路径(例如 C:\Users\francky\Documents\MATLAB)

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

cha*_*pjc 5

根据此帮助页面

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

然而,事情显然不止于此。

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

        MATLABPATH

    C:\Program Files (x86)\MATLAB\R2013a\toolbox\local
>> 
Run Code Online (Sandbox Code Playgroud)

因此,路径上唯一的东西是matlabroot/toolbox/localMATLAB 默认情况下会找到的位置pathdef.m。正确的?我是这么认为的,但是一个简单的测试证明pathdef.muserpath实际上userpath是 的第一优先级pathdef.m。为什么?因为在 MATLAB 中,工作目录优先于 上的任何内容matlabpathuserpath,而启动文件夹由!决定。

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

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