我可以运行示例-找到here-从c++执行 Octave 音程函数。
如果功能文件位于与执行c++代码相同的目录中,则此方法有效。

如果功能文件位于其他路径中,则可以使用以下命令加载该文件:octave_function *fun = load_fcn_from_file("/Path/exampleOctaveFunction.m");这意味着我必须加载要使用的每个功能。

C++ API中是否有一种方法(如Octave中的addpath)可用于添加完整目录?或者甚至可以将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合并,以添加给定路径的所有子目录。

关于c++ - Octave C++ API:addpath,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43894733/

10-09 00:46