2012-02-12 28 views
8

我想用GNU Octave库来计算一些矩阵算法。我知道我可以使用Octave的C/C++ API进行基本的使用。但是我想使用的方法不在Octave的默认包中。那么如何在C/C++程序中使用Octave的control package如何在C/C++程序中嵌入GNU Octave?

+0

我是新的C键使用倍频++。你能告诉我如何使用Octave的C/C++ API来实现它。非常感谢你! – Timothy 2014-05-15 02:18:10

回答

13

像这样的事情

embed.cpp

#include <iostream> 
#include <octave/octave.h> 

int main(int argc,char* argv) 
{ 
  int embedded; 
  octave_main(argc,argv,embedded=0);   
  return embedded; 
} 

然后

mkoctfile embed.cpp --link-stand-alone -o embed为了使一个独立的可执行文件。

要调用octave函数,不管它们是由脚本还是八度音形模块提供,都可以使用feval,它将八度函数名称作为字符串,该函数的输入变量的octave_value_list以及该函数的变量数目整数。

有关更多信息,请参阅here

+1

任何人在这里登陆的思考:使用嵌入八度意味着你必须在GPL许可下发布你的代码http://wiki.octave.org/FAQ#If_I_write_code_using_Octave_do_I_have_to_release_it_under_the_GPL.3F – waiting4op2deliver 2016-11-19 06:36:55