我的問題是,如果讓addpath類似於在C#包括在C,如果你不添加#後衛(的#ifndef ...)會有的功能多定義。但似乎MATLAB正在處理這個問題。多次調用MATLAB的addpath是否有缺點?
我就是用這個方案不要打電話讓addpath很多次:
try
f(sample args);
catch err
addpath('lib');
end
但現在我認爲這是沒有必要的。
我的問題是,如果讓addpath類似於在C#包括在C,如果你不添加#後衛(的#ifndef ...)會有的功能多定義。但似乎MATLAB正在處理這個問題。多次調用MATLAB的addpath是否有缺點?
我就是用這個方案不要打電話讓addpath很多次:
try
f(sample args);
catch err
addpath('lib');
end
但現在我認爲這是沒有必要的。
#include
增加了一個特定的頭文件。 addpath
僅向搜索路徑添加一個文件夾,不會將任何代碼添加到您的程序中。認爲它作爲添加的目錄搜索在C頭文件++(例如,在Visual Studio中,它是「附加包含目錄」和g ++,它與-I
實現)。
另外,我覺得addpath
檢查,如果該文件夾已經添加,所以你真的沒有做與重複調用addpath('lib')
什麼。
對addpath
的多個呼叫不會創建多個功能,因此從正確性的角度來看,多次使用addpath
沒有問題。
然而,addpath
是相對慢的操作。在正常操作期間,您不應該在可能需要多次調用的函數內調用它。
編輯:
此外,而不是依靠try/catch語句來檢查你的路徑的當前狀態,可以直接檢查路徑。請參閱示例:https://stackoverflow.com/a/8238096/931379。
你說得對。我注意到了。在我的筆記本電腦上添加一個通話需要大約20ms。 – 2012-02-11 01:44:35
你的意思是對於G資本'-L' ++? – 2012-02-10 18:05:41
是的,'addpath'調用'path'函數,用於檢查路徑上已有的目錄。它雖然改變了順序。 – yuk 2012-02-10 18:10:18
@AndrewJanke:是的,但是這比喻混亂了一點。我會去'-I'。 – Jacob 2012-02-10 18:10:22