Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to embed the GNU Octave in C/C++ program?

I want to calculate some matrix algorithms using the GNU Octave library. I know I can use C/C++ API of Octave for basic use. However the method I want to use is not in the default packages of Octave. So how to use Octave's control package in the C/C++ program?

like image 862
reyoung Avatar asked Feb 12 '12 04:02

reyoung


1 Answers

Something like this

embed.cpp

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

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

Then

mkoctfile embed.cpp --link-stand-alone -o embed in order to make a standalone executable.

To call octave functions whether they are provided by scripts or octaveforge modules you can then use feval which takes the octave function name as string, an octave_value_list of the input variables to that function, and the number of variables to that function as integer.

See here for further information.

like image 106
Appleman1234 Avatar answered Sep 21 '22 15:09

Appleman1234