Octave C++ API: 添加路径

Octave C++ API: addpath

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

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

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

再看一遍,解决方案很明显。 只需使用 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")

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