环境:Windows 7 Professional + octave 3.6.2 + Visual C++
根据教程,我试图将 octave 嵌入到独立的 C++ 程序中:
http://www.gnu.org/software/octave/doc/interpreter/Standalone-Programs.html#Standalone-Programs
我设法运行第一个程序没有问题,但第二个给出错误消息。
第二个程序的简化版:
int main (void)
{
string_vector argv (2);
argv(0) = "embedded";
argv(1) = "-q";
octave_main (2, argv.c_str_vec(), 1);
Matrix a_matrix = Matrix (1, 2);
std::cout << "GCD of [12, 16] is ";
a_matrix(0)=12;
a_matrix(1)=16;
octave_value_list in = octave_value (a_matrix);
octave_value_list out = feval ("gcd", in, 1);
std::cout<<out(0).matrix_value()<<std::endl;
return 0;
}
带有“feval”的行未能执行。原因是在 octave 3.6.2中,函数gcd 不再接受值列表作为参数,必须调用gcd(value1, value2, ...)而不是 gcd([value1, value2, ...]) ,它在 octave 3.2.4 中得到支持,所以这里提出了我的主要问题:
如何将多个参数作为单独的值传递给 feval,以便我可以通过 octave 的 C++ API 调用 gcd(value1, value2, ...) 之类的函数?
最终,我需要在 GUI 应用程序中进行一些图形处理,所以我可能需要在 C++ 端调用 conv2 之类的函数(遗憾的是,这也需要多个函数参数)
预先感谢您的任何帮助