Octave C ++ API:addpath

时间:2017-05-10 14:00:32

标签: c++ octave

我可以运行示例 - 找到here - 从c ++执行八度函数。 如果函数文件位于执行c ++代码的同一目录中,则此方法有效。

如果函数文件位于不同的路径中,则可以加载:
octave_function *fun = load_fcn_from_file("/Path/exampleOctaveFunction.m"); 这意味着,我必须加载我想要使用的每个单独的函数。

是否有一种方法,如Octave中的addpath,可以在C ++ API中添加完整目录?或者我甚至可以将Octave执行的工作目录设置为使用相对路径?

1 个答案:

答案 0 :(得分:1)

再看一遍之后,解决方案非常明显。 只需使用Octave addpath函数即可。

因此,不是通过路径加载函数然后执行它,而是

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

DO

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

现在,函数(以及Path中的所有其他函数)可以以通用方式加载

feval("exampleOctaveFunction")

将对addpath的调用与genpath相结合,以添加给定路径的所有子目录。