我可以运行示例-找到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/