9

我对 MATLAB 搜索路径有一些疑问:

  1. 当前目录在搜索路径上,但为什么不在“路径”的输出中?在哪里可以找到完整的搜索路径?

  2. 添加搜索路径的所有可能方法是什么?

  3. 考虑到添加搜索路径的所有可能方式(例如 pathdef.m、startup.m、MATLABPATH 环境变量等),添加搜索路径的顺序是什么?我认为这很重要,因为当不同搜索路径中存在同名文件时,将选择顶部的文件。

4

2 回答 2

10

Amro提供的链接对于回答您的问题应该很有帮助。为了更具体地解决它们:

  1. PATH的输出将显示pathdef.m文件的内容,其中应包括以下所有内容:

    • MATLAB 和其他 MathWorks 产品(即工具箱)提供的文件夹。这些文件夹位于根 MATLAB 文件夹中,您可以使用MATLABROOT函数找到该文件夹​​。

    • MATLAB 用户文件夹(即My Documents\MATLAB在 Windows 平台上),可以使用USERPATH函数找到。

    • 用户添加到路径文件的任何其他文件夹。

    完整的搜索路径包含上述内容,以及当前目录。当前目录不会保存为路径文件的一部分,因为它可以在 MATLAB 会话期间更改。您可以使用PWD功能找到当前文件夹。

  2. 可以通过更改路径文件或当前目录来更改搜索路径。您可以通过以下方式修改路径文件:

    并且可以通过以下方式更改当前目录:

  3. 当您使用上述方法修改路径文件时,通常会将新文件夹添加到路径列表的顶部。您可以使用“设置路径”对话框更改路径文件中路径的顺序。

    当存在同名的函数时,MATLAB 会按照以下函数优先顺序来确定要使用的函数:

    • 变量(如果变量与函数同名)

    • 嵌套函数

    • 子功能

    • 私有函数

    • 类构造函数

    • 重载方法

    • 当前目录下的函数

    • 搜索路径上的其他功能

    请注意,当前目录中的函数在搜索路径上的其他位置之前调用。此外,最接近搜索路径顶部的文件优先于更下方的文件。

于 2010-01-25T05:38:51.383 回答
5

最好的答案是将您指向相关的 MATLAB 文档:

于 2010-01-25T01:14:07.973 回答