2012-02-12 8 views
8

Quiero calcular algunos algoritmos de matriz usando la biblioteca Octave de GNU. Sé que puedo usar la API C/C++ de Octave para uso básico. Sin embargo, el método que deseo utilizar no está en los paquetes predeterminados de Octave. Entonces, ¿cómo usar Octave's control package en el programa C/C++?¿Cómo incrustar la Octava de GNU en el programa C/C++?

+0

Soy nuevo a usar Octave en C++. ¿Puede por favor mostrarme cómo usar C/C++ API de Octave para realizarlo? ¡Muchas gracias! – Timothy

Respuesta

13

Algo como esto

embed.cpp

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

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

Entonces

mkoctfile embed.cpp --link-stand-alone -o embed con el fin de hacer un ejecutable independiente.

Para llamar a funciones de octava, ya sean proporcionadas por scripts o módulos octaveforge, puede usar feval que toma el nombre de la función de octava como cadena, una octava_valor_list de las variables de entrada para esa función y el número de variables para esa función entero.

Consulte here para obtener más información.

+1

Algo para pensar para cualquiera que aterrice aquí: usar octava de inserción significa que debe liberar su código bajo una licencia GPL como http://wiki.octave.org/FAQ#If_I_write_code_using_Octave_do_I_have_to_release_it_under_the_GPL.3F – waiting4op2deliver