2012-02-12 32 views
8

Tôi muốn tính toán một số thuật toán ma trận bằng cách sử dụng thư viện GNU Octave. Tôi biết tôi có thể sử dụng API C/C++ của Octave để sử dụng cơ bản. Tuy nhiên, phương pháp tôi muốn sử dụng không nằm trong gói mặc định của Octave. Vậy làm thế nào để sử dụng control package của Octave trong chương trình C/C++?Làm thế nào để nhúng GNU Octave vào chương trình C/C++?

+0

Tôi mới để sử dụng Octave trong C++. Bạn có thể vui lòng chỉ cho tôi cách sử dụng API C/C++ của Octave để nhận ra nó. Cảm ơn nhiều! – Timothy

Trả lời

13

Something như thế này

embed.cpp

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

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

Sau đó

mkoctfile embed.cpp --link-stand-alone -o embed để tạo ra một thực thi độc lập.

Để gọi hàm octave cho dù chúng được cung cấp bởi tập lệnh hay mô-đun octaveforge, bạn có thể sử dụng feval, lấy tên hàm octave làm chuỗi, octave_value_list của biến đầu vào cho hàm đó và số biến cho hàm đó số nguyên.

Xem here để biết thêm thông tin.

+1

Thực phẩm cho tư tưởng cho bất kỳ ai đến đây: sử dụng octave nhúng có nghĩa là bạn phải phát hành mã của bạn theo GPL như giấy phép http://wiki.octave.org/FAQ#If_I_write_code_using_Octave_do_I_have_to_release_it_under_the_GPL.3F – waiting4op2deliver

Các vấn đề liên quan