一步步学如何使用VC调用matlab engine编程
2009-08-06 17:27
281 查看
这里不再介绍
VC
和
matlab
的各自优劣。直接给出一个最简单的例子。跟着文中步骤一步步来做,肯定会成功的。
废话少说。
Matlab Engine
采用
Client/Server
的方式,通过
ActivcX
通道和
Matlab
接口来实现在
VC
编程环境中直接调用
matlab
中的指令。调用使用的函数是:
engEvalSting
。后面将讲到此函数的使用方法。
下面是完整的步骤。如果是第一次使用,则要设置一下
VC
的编程环境中的
include
和
lib
的路径指向。假设
matlab
安装在
c
盘默认目录,则如下设置:
注意:上面添加路径的两步只设置一次就可以了。下面来进行
VC
编程。
首先,运行
VC
向导,新建一个工程文件如下:
接下来选择一个对话框程序作为简单示例:
点击
”Finish”
可以完成自动生成一个工程框架。
4000
下面来设计界面,我们来简单的添加一个按钮并为其添加响应函数:
生成的按钮响应函数:
void CVc_matlab_engineDlg::OnButton1()
{
}
好了至此
VC
部分框架已经搭好。下面来进入调用
engine
部分。
在编写函数调用
engine
之前,首先要设置一下链接库(每个工程都要设置一次的,而前面的路径设置不必)。
在
Object/Library modules
文本框中添加:
libmx.lib libmat.lib libeng.lib
接下来,在
StdAfx.h
文件头中加入:
#include "engine.h"
并在按钮响应函数中输入:
void CVc_matlab_engineDlg::OnButton1()
{
Engine *ep;
if(!(ep=engOpen(NULL)))
::MessageBox(NULL,"Can' start the MATLAB engine","VC
调用
matlab engine
示例程序
",MB_OK);
engEvalString(ep,"x=0:0.05:2*pi;y=sin(x);");
engEvalString(ep,"subplot(2,1,1);plot(x,y);");
engEvalString(ep,"title('
画正弦线
');");
engEvalString(ep,"subplot(2,1,2);load clown;imshow(X,map);title('
显示
matlab
自带小丑图像
')");
::MessageBox(NULL,"
俺任意键继续
","VC
调用
matlab engine
示例程序
by bugzhao",MB_OK);
engClose(ep);
}
到此,这个程序已经可以运行了!很简单吧!不过这类程序的运行依赖于
matlab
,速度无法保证哦。等这类程序熟练以后,大家可以再去试试
mex
、
dll
和
com
组件调用等更加高级的内容。
程序执行界面:
点击按钮后调用
matlab
生成的正弦线和画出的
matlab
自带的小丑图像:
可以看出关键的语句就是:
engEvalString
。其用法也很简单。到此程序的环境设置、编写代码和执行都给大家演示完了。希望大家有所收获。详细的讲解,还是去看
matlab
的帮助吧:)
转自:http://hi.baidu.com/%C1%F5%D3%E6%E9%D4/blog/item/88917e01d5925006738da578.html
相关文章推荐
- 如何用Matlab编译.dll,再用VC调用
- 初步探索如何使用Visual C#调用Matlab
- 关于使用vc++调用matlab生成的dll传递数组的问题
- 如何在VC++中调用matlab的求行列式和逆矩阵函数
- 如何在VC++中调用matlab的求行列式和逆矩阵函数
- 如何从VC中调用MATLAB的神经网络工具箱
- 关于使用vc++调用matlab生成的dll传递数组的问题
- 64位win7下vc2010如何调用matlab2012a中生成的dll文件
- 使用VC调用matlab engine编程
- 初步探索如何使用Visual C#调用Matlab
- vc中调用matlab引擎,如何写入循环!!!
- ubuntu下C++如何调用matlab程序
- 【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法
- matalb7与VC2008混合编程DLL方法(三)VC调用matlab的DLL库函数
- Spring如何使用JdbcTemplate调用存储过程的三种情况
- 如何使用VC编译.C文件或者CXX文件?
- vc调用matlab生成的dll实例
- 一步步教你如何在 Visual Studio 2013 上使用 Github
- 如何使用C语言实现递归调用
- 在VC中WININET如何使用HTTP的POSTA和GET方法