matlab 与vs2008联合编程的设置备忘

要在VC中成功编译Matlab引擎程序,必须包含引擎头文件engine.h。并引入Matlab对应的库文件libmx.liblibmat.liblibeng.lib

1) 通过菜单工具/选项,打开选项页,点击项目和解决方案,然后在页面右面“显示以下内容的目录”下拉列表框中选择“包含文件”,添加路径:"X:\Program files\MATLAB\R2010b\extern\include"。X代表matlab所在盘符,一般为c或者d。

2) 选择“库文件”,添加路径:

X:\Program Files\MATLAB\R2010a\extern\lib\win32\microsoft。

3) 右击工程/属性,打开项目属性页,选择链接器/输入,在附加依赖项编辑框中,添加文件名libmx.lib libmat.lib libeng.lib。

注意,1,2主用设置一次,因为他的设置时全局的,3每个不同的工程要设置一次。

然后,还要修改环境变量,否则会提示 libmx.dll找不到,右键我的电脑->高级->环境变量->系统变量,找到PATH,将matlab的

D:\Program Files\MATLAB\R2010a\bin\win32路径加进去,dll文件在这个目录下。然后重启电脑,不重启电脑的话要重启vs,就可以打开matlab了。

 

matlab引擎包好了这样一些常见函数。这些函数可以在engine.h 、matrix.h 中查看。

Engine*   engOpen(const   char*   startcmd);

int   engClose(Engine*   ep);

int     engEvalString(Engine*   ep,   const   char*   string);

Engine *engOpenSingleUse(const char *startcmd, void *reserved,int *retstatus );

1 EXTERN_C int engOutputBuffer(
2     Engine    *ep,        /* engine pointer */
3     char    *buffer,      /* character array to hold output */
4     int     buflen        /* buffer array length */
5     );
1 EXTERN_C int engPutVariable(
2            Engine    *ep,        /* engine pointer */
3            const char *var_name,
4            const mxArray *ap   /* array pointer */
5            );
EXTERN_C mxArray *engGetVariable(
    Engine    *ep,        /* engine pointer */
    const char *name    /* name of variable to get */
    );

mxArray *T=NULL

 T=mxCreateDoubleMatrix(1,1,mxREAL);  matlab有很多产生矩阵的函数,参看matrix.h文件。
memcpy((char*)mxGetPr(T),(char*)t,1*sizeof(double));

原文地址:https://www.cnblogs.com/renly/p/3005968.html