登录论坛

查看完整版本 : 如何使用MATLAB搜索路径


poster
2019-12-10, 20:30
我对MATLAB搜索路径有一些疑问:


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

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

考虑添加搜索路径的所有可能方法(例如pathdef.m,startup.m,MATLABPATH env变量等),添加搜索路径的顺序是什么?我认为这很重要,因为当具有相同名称的文件位于不同的搜索路径中时,将选择顶部的文件。



回答:

Amro (https://stackoverflow.com/questions/2129646/matlab-search-path/2129658#2129658)提供的链接在回答您的问题时应该会很有帮助。要更具体地解决它们:


PATH (http://www.mathworks.com/help/matlab/ref/path.html)的输出将显示pathdef.m文件的内容,该文件应包括以下所有内容:


MATLAB和其他MathWorks产品(即工具箱)提供的文件夹。这些文件夹位于MATLAB根文件夹中,您可以使用MATLABROOT (http://www.mathworks.com/help/matlab/ref/matlabroot.html)函数找到该文件夹。

MATLAB用户文件夹(即Windows平台上的My Documents\MATLAB ),可以使用USERPATH (http://www.mathworks.com/help/matlab/ref/userpath.html)函数找到。

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

完整的搜索路径 (http://www.mathworks.com/help/matlab/matlab_env/what-is-the-matlab-search-path.html)包含以上内容,以及当前目录的所有内容。当前目录不会保存为路径文件的一部分,因为可以在MATLAB会话期间进行更改。您可以使用PWD (http://www.mathworks.com/help/matlab/ref/pwd.html)功能找到当前文件夹。

可以通过更改路径文件或当前目录来更改搜索路径 (http://www.mathworks.com/help/matlab/search-path.html) 。您可以通过以下方式修改路径文件:


使用PATH (http://www.mathworks.com/help/matlab/ref/path.html)函数以及其他相关函数ADDPATH (http://www.mathworks.com/help/matlab/ref/addpath.html) , RMPATH (http://www.mathworks.com/help/matlab/ref/rmpath.html)和SAVEPATH (http://www.mathworks.com/help/matlab/ref/savepath.html) 。

使用“ 设置路径”对话框 (http://www.mathworks.com/help/matlab/matlab_env/what-is-the-matlab-search-path.html#btqi_c6) ,可以从“命令”窗口中打开,方法是选择“ 文件”>“设置路径”,或者调用PATHTOOL (http://www.mathworks.com/help/matlab/ref/pathtool.html)函数。

修改startup.m文件 (http://www.mathworks.com/help/matlab/matlab_env/startup-options.html#brlkmbe-1) 。

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


使用CD (http://www.mathworks.com/help/matlab/ref/cd.html)功能。

使用当前的文件夹浏览器 (http://www.mathworks.com/help/matlab/matlab_env/working-with-files-and-folders.html#br5uzmu-1) 。


当使用上述方法修改路径文件时,通常会将新文件夹添加到路径列表的顶部。您可以使用“ 设置路径”对话框 (http://www.mathworks.com/help/matlab/matlab_env/what-is-the-matlab-search-path.html#btqi_c6)更改路径文件中路径的顺序。

当存在具有相同名称 (http://www.mathworks.com/help/matlab/matlab_env/files-and-folders-that-matlab-accesses.html#br8hqz8-1)的函数时 (http://www.mathworks.com/help/matlab/matlab_prog/function-precedence-order.html) ,MATLAB遵循以下函数优先级顺序 (http://www.mathworks.com/help/matlab/matlab_prog/function-precedence-order.html)来确定要使用的函数:


变量(如果变量与函数具有相同的名称)

嵌套功能

子功能

私人功能

类构造器

重载方法

当前目录中的功能

在搜索路径上的其他位置起作用

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



更多&回答... (https://stackoverflow.com/questions/2129646)