2017-05-10 40 views
1

我可以運行該示例 - 找到here - 從C++執行八度功能。 如果函數文件位於執行C++代碼的相同目錄中,則這起作用。Octave C++ API:addpath

如果函數文件位於不同的路徑,它可以被加載:
octave_function *fun = load_fcn_from_file("/Path/exampleOctaveFunction.m"); 這意味着,我必須加載,我想用每個獨立的功能。

是否有方法,如Octave中的addpath,在C++ API中可用於添加完整目錄?或者我甚至可以設置Octave執行的工作目錄以使用相對路徑?

回答

0

再次看了這個之後,解決方案非常明顯。 只需使用Octave addpath函數。

所以不是加載其路徑的功能,然後執行它,

octave_function *fun = load_fcn_from_file("/Path/exampleOctaveFunction.m") 
feval(octave_function) 

octave_value_list arg; 
arg(0) = "Path"; 
feval("addpath", arg); 

現在的功能(和Path所有其它功能),可以在公共加載方式

feval("exampleOctaveFunction") 

將呼叫結合到addpathgenpath添加給定路徑的所有子目錄。