我对MATLAB搜索路径有一些疑问:
当前目录位于搜索路径上,但为什么它不在“path”的输出中?我在哪里可以找到完整的搜索路径?
添加搜索路径的所有可能方法是什么?
考虑添加搜索路径的所有可能方法(例如pathdef.m,startup.m,MATLABPATH env变量等),添加的搜索路径的顺序是什么?我认为这很重要,因为当不同搜索路径中存在同名文件时,将会选择顶部的文件。
答案 0 :(得分:10)
Amro提供的链接在回答您的问题时非常有帮助。更具体地解决这些问题:
PATH的输出会显示pathdef.m
文件的内容,其中应包含以下所有内容:
MATLAB和其他MathWorks产品(即工具箱)提供的文件夹。这些文件夹位于根MATLAB文件夹中,您可以使用MATLABROOT功能找到它。
MATLAB用户文件夹(即Windows平台上的My Documents\MATLAB
),可以使用USERPATH函数找到。
用户已添加到路径文件的任何其他文件夹。
完整的search path包含上述内容,以及当前目录。当前目录不会保存为路径文件的一部分,因为它可以在MATLAB会话期间更改。您可以使用PWD功能找到当前文件夹。
可以通过更改路径文件或当前目录来更改search path。您可以通过以下方式修改路径文件:
使用Set Path dialog box,可以通过选择文件>从命令窗口打开设置路径或调用函数PATHTOOL。
可以通过以下方式更改当前目录:
使用CD功能。
使用上述方法修改路径文件时,通常会将新文件夹添加到路径列表的顶部。您可以使用Set Path dialog box更改路径文件中路径的顺序。
当有share the same name函数时,MATLAB遵循以下function precedence order来确定使用哪个函数:
变量(如果变量与函数同名)
嵌套功能
子功能
私人功能
类构造函数
重载方法
当前目录中的功能
搜索路径上其他位置的功能
请注意,当前目录中的函数在搜索路径上的其他位置之前调用。此外,最靠近搜索路径顶部的文件优先于文件的下方。
答案 1 :(得分:5)
最佳答案是指向相关的MATLAB文档: