matlab创建路径来停止复制代码

时间:2014-10-30 09:39:28

标签: matlab

我在MATLAB中创建了一些我打算用于几个单独项目的通用函数。但是我不想将该函数复制到每个单独的项目函数中。

当我放置这些常规功能时,我创建了一个名为Misc_Function的文件夹。我知道我可以在尝试调用函数时使用路径和函数名称显式引用此函数。

我相信你可以添加一个路径(在我的情况下' H:\ MyTeam \ Matlab \ Misc_Function')当MATLAB加载时是正确的,如果是这样的话你怎么做?

假设可以做到以上几点,我有兴趣知道MATLAB如何找到正确的函数。在我的理解(猜测工作)中,MATLAB有一个路径列表,它检查试图找到一个具有指定名称的函数 - 这是正确的吗?如果是这样,当存在具有相同名称的函数时会发生什么?

3 个答案:

答案 0 :(得分:1)

MATLAB确实有自己的search path,它是MATLAB在引用函数或类(以及其他一些东西)时将搜索的文件夹集合。要查看搜索路径,请在MATLAB提示符下键入path。来自documentation:

  

搜索路径上的文件夹的顺序非常重要。当具有相同名称的文件出现在搜索路径上的多个文件夹中时,MATLAB将使用在距离搜索路径顶部最近的文件夹中找到的文件。

如果您有一组要用于项目的实用程序功能,请使用addpath功能将该文件夹添加到搜索路径的顶部,如下所示

addpath('H:\MyTeam\Matlab\Misc_Function');

每次启动MATLAB时都必须这样做。或者,更方便的是,使用savepath命令保存当前搜索路径,或将上述命令添加到startup.m文件中。

答案 1 :(得分:1)

您可以使用

检查Matlab搜索功能的实际路径
path

您会注意到,最顶级路径(启动时)是主文件夹中的路径。对于Linux,这是例如/home/$USER/Documents/MATLAB。对于Windows,它位于c:\Users\%USER%\Documents\Matlab(我认为)的某个地方。在此文件夹中放置文件startup.m可以使用

添加其他路径
addpath('H:\MyTeam\Matlab\Misc_Function');

addpath(genpath('H:\MyTeam\Matlab\Misc_Function'));

启动Matlab。后者(genpath)允许添加所有子目录。只需编写一个文件startup.m并在其中添加上述行之一。

答案 2 :(得分:1)

我相信' addpath'将仅为当前MATLAB会话将文件夹添加到MATLAB路径。要保存其他会话的更新路径,您需要执行' savepath'命令。

如前面的评论所述,在startup.m中添加文件夹是一个好主意,因为它将被添加到MATLAB启动的路径中。

为了回答有关MATLAB如何找到正确函数的问题,MATLAB在名为pathdef.m的文件中维护其路径中的目录列表。对路径的任何更改都将写入此文件(执行' savepath'时)。路径变量使用此文件的内容进行初始化。