多次调用MATLAB addpath有什么缺点吗?

时间:2012-02-10 17:39:23

标签: include matlab

我的问题是,如果addpath类似于C中的#include。在C中如果不添加#include guard(#ifndef ...),将会有多个函数定义。但似乎MATLAB正在处理这个问题。

我使用这个方案不是多次调用addpath:

try
    f(sample args);
catch err
    addpath('lib');
end

但现在我认为没有必要。

2 个答案:

答案 0 :(得分:5)

#include添加特定标头文件addpath只是在搜索路径中添加了一个文件夹,并且不会向您的程序添加任何代码。可以把它想象为添加目录以在C ++中搜索头文件(例如在Visual Studio中,它是“其他包含目录”和g ++,它是用-I实现的。)

此外,我认为addpath会检查文件夹是否已添加,因此您对addpath('lib')的重复调用实际上没有做任何事情。

答案 1 :(得分:3)

addpath的多次调用不会创建多个函数,因此从正确的角度来看,多次使用addpath没有问题。

但是,addpath是一个相对较慢的操作。您不应该在正常操作期间可能多次调用的函数内调用它。


编辑:

此外,您可以直接检查路径,而不是依靠try / catch来检查路径的当前状态。请参阅此处的示例:https://stackoverflow.com/a/8238096/931379