Matlab混合编程之引擎方式(C++篇)

来源:互联网 发布:淘宝蜂巢蜜真假 编辑:程序博客网 时间:2024/05/22 11:42

进行了两天的测试,用Matlab混合编程有太多的苦楚,遇到的问题很多,谁叫Matlab有这么强大的功能。Matlab混合编程有好几种方式,引擎方式的优点是实现较为方便,基本可以用到Matlab的所有功能;缺点是移植性不好,需要目标机安装Matlab程序本篇文章介绍C++的连接方式,已测试成功。

配置环境:vs201364位)+Matlab2013a64位)+win8.164位)

Matlab安装路径:C:\Program Files\MATLAB\R2013a为例

 

环境变量:

C:\Program Files\MATLAB\R2013a\bin\win64;

C:\Program Files\MATLAB\R2013a\bin;

包含目录:

C:\Program Files\MATLAB\R2013a\extern\include;

C:\Program Files\MATLAB\R2013a\extern\include\win64;

包含库目录:

C:\Program Files\MATLAB\R2013a\extern\lib\win64\microsoft;

链接器->输入:

libeng.lib;libmx.lib;

 

示例代码:

#include "stdafx.h"

#include"engine.h"

 

int _tmain(int argc, _TCHAR* argv[])

{

    Engine * mat;

    char *commandchar;

    //打开引擎

    if (!(mat = engOpen("\0")))

    {

        printf("Cannot start MATLAB engine!");

    }

    //使用引擎

    commandchar = "t=0:0.01:2*pi;y=sin(t);h=plot(t,y)";

    engEvalString(mat, commandchar);

    commandchar = "print(gcf,'-djpeg','c:\\Test\\Test2')";

    engEvalString(mat, commandchar);

    //关闭引擎

    engClose(mat);

    return 0;

}

 

PS

出现错误:错误     2       error LNK2019: 无法解析的外部符号 _engOpen,该符号在函数 _wmain 中被引用         C:\Users\zhangzhizhi\documents\visual studio 2013\Projects\Matlab_CPP\Matlab_CPP\Matlab_CPP.obj         Matlab_CPP

原因:兼容性问题,Matlab2013a只支持64位,需要将VS项目调整为64

解决方法:在配置管理器进行配置,平台选择X64即可

转自:http://blog.sina.com.cn/s/blog_6f7265cf0101nqhb.html

0 0
原创粉丝点击