Matlab混合编程之引擎方式(C++篇)
2014-10-09 10:02
344 查看
进行了两天的测试,用Matlab混合编程有太多的苦楚,遇到的问题很多,谁叫Matlab有这么强大的功能。Matlab混合编程有好几种方式,引擎方式的优点是实现较为方便,基本可以用到Matlab的所有功能;缺点是移植性不好,需要目标机安装Matlab程序。本篇文章介绍C++的连接方式,已测试成功。
配置环境:vs2013(64位)+Matlab2013a(64位)+win8.1(64位)
以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
配置环境:vs2013(64位)+Matlab2013a(64位)+win8.1(64位)
以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
相关文章推荐
- VC和Matlab混合编程之调用Engine引擎方式<一>
- Matlab混合编程之引擎方式(C#篇)
- VC++与Matlab混合编程之引擎操作详解(3)数据类型mxArray的操作
- 【MATLAB与C的混合编程】之【C程序调用Matlab计算引擎】(3)
- VC 与Matlab混合编程之引擎操作详解
- VC++与Matlab混合编程之引擎操作详解
- VC++与Matlab混合编程之引擎操作详解(3)数据类型mxArray的操作
- VC++6.0与matlab引擎混合编程
- 浅谈VC6.0和Matlab混合编程之Matlab引擎
- VC++与Matlab混合编程之引擎操作详解
- vs2013中使用matlab2014b引擎实现c++和matlab混合编程
- 【MATLAB与C的混合编程】之【C程序调用Matlab计算引擎】(2)
- VC++与Matlab混合编程之引擎操作详解(6)数据类型mxArray的操作
- VC++与Matlab混合编程之引擎操作详解
- VC++与Matlab混合编程之引擎操作详解
- VC++与Matlab混合编程之引擎操作详解
- VC++与Matlab混合编程之引擎操作详解(3)引擎API详解
- VC++与Matlab混合编程之一:调用Matlab引擎
- VC++与Matlab混合编程之引擎操作详解
- Matlab混合编程之C++SL(C++篇)