最近实验室一位伊拉克博士仁兄在写paper,要做仿真。需要在c++中调用matlab里面的函数。据说matlab已经有了动态链接库供调用,但是从网上百度google了下,暂时也没有找到比较详细的教程,就打算自己编译matlab某个函数的动态库。具体流程如下,以调用matlab中sin函数为例。
ubuntu12.04下的matlab安装请参照:
http://bbs.weiphone.com/read-htm-tid-6280022.html
1.编写mySin.m
function z = mySin(x)
z = sin(x);
end
2.编译libMySin.so
在matlab中打开mySin.m文件所在的路径,然后在matlab命令行中输入如下命令:
mcc -W cpplib:libMySin -T link:lib mySin -C
其中libMySin指的是生成的动态链接库的名字,mySin是matlab文件名。
3.编写cpp文件调用mySin,文件名为MainSin.cpp,和mySin.m在同一路径下
#include "mclmcrrt.h"
#include "mclmcr.h"
#include "mclcppclass.h"
#include "matrix.h"
#include <iostream>