返回   MATLAB中国论坛|MATLAB爱好者之家—不仅仅是MATLAB! > 特色讨论区:工程数学软件-不仅仅是MATLAB! > MATLAB论坛


MATLAB论坛 一切MATLAB相关问题在此讨论,发帖时必须选择相应主题前缀:MATLAB基础,MATLAB混合编程,MATLAB数学问题,MATLAB工具箱,MATLAB图像处理,MATLAB GUI,MATLAB毕业设计,Simulink相关等。

挖掘已有资源,发帖前请先搜索!
虚拟主机 域名注册 香港空间
回复
 
LinkBack 主题工具 显示模式
旧 2008-06-12, 03:02 PM   #1
普通会员
 
注册日期: 2008-02-29
年龄: 31
帖子: 92
感谢他人: 0
有 2 帖获得 10 感谢
声望力: 6
tolabfans 正向着好的方向发展
默认 [分享]非常通俗的VC/matlab混和编程例子

这里不再介绍VCmatlab的各自优劣。直接给出一个最简单的例子。跟着文中步骤一步步来做,肯定会成功的。 废话少说。
Matlab Engine 采用Client/Server的方式,通过ActivcX通道和Matlab接口来实现在VC编程环境中直接调用matlab中的指令。调用使用的函数是:engEvalSting。后面将讲到此函数的使用方法。
下面是完整的步骤。如果是第一次使用,则要设置一下VC的编程环境中的includelib的路径指向。假设matlab安装在c盘默认目录,则如下设置:








注意:上面添加路径的两步只设置一次就可以了。下面来进行VC编程。

首先,运行VC向导,新建一个工程文件如下:





接下来选择一个对话框程序作为简单示例:




点击”Finish”可以完成自动生成一个工程框架。
下面来设计界面,我们来简单的添加一个按钮并为其添加响应函数:





生成的按钮响应函数:
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,速度无法保证哦。等这类程序熟练以后,大家可以再去试试mexdllcom组件调用等更加高级的内容。
程序执行界面:




点击按钮后调用matlab生成的正弦线和画出的matlab自带的小丑图像:

可以看出关键的语句就是:engEvalString。其用法也很简单。到此程序的环境设置、编写代码和执行都给大家演示完了。希望大家有所收获。详细的讲解,还是去看matlab的帮助吧:)











http://hi.baidu.com/%C1%F5%D3%E6%E9%...6738da578.html

一学亦会
tolabfans 当前离线   回复时引用此帖
以下用户感谢 tolabfans 发表了这个帖子:
xuliya282 (2009-10-01)
旧 2008-06-17, 12:33 AM   #2
初级会员
 
注册日期: 2008-04-24
年龄: 30
帖子: 19
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 5
xs1119 正向着好的方向发展
默认 谢谢搂住

给予我了极大的帮助~~ :smile: :tongue:
xs1119 当前离线   回复时引用此帖
旧 2008-06-20, 10:39 AM   #3
初级会员
 
注册日期: 2008-03-16
年龄: 30
帖子: 2
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 0
joshua_gao 正向着好的方向发展
默认

看看,最喜欢Demo了,呵呵。:tongue: :tongue:
joshua_gao 当前离线   回复时引用此帖
旧 2008-07-01, 08:35 PM   #4
初级会员
 
注册日期: 2007-05-20
年龄: 32
帖子: 10
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 6
aido2005 正向着好的方向发展
默认

thanks
aido2005 当前离线   回复时引用此帖
旧 2008-07-23, 04:41 PM   #5
初级会员
 
注册日期: 2008-06-10
年龄: 27
帖子: 1
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 0
wyuesuper 正向着好的方向发展
默认

hehe,xiexie
wyuesuper 当前离线   回复时引用此帖
旧 2008-08-25, 09:44 AM   #6
初级会员
 
注册日期: 2008-08-21
年龄: 25
帖子: 2
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 0
mingjian03 正向着好的方向发展
默认 回复: [分享]非常通俗的VC/matlab混和编程例子

谢谢楼主了,学习了
mingjian03 当前离线   回复时引用此帖
旧 2008-11-25, 08:54 AM   #7
未注册
游客
 
帖子: n/a
默认 回复: [分享]非常通俗的VC/matlab混和编程例子

很不错啊
很有用
  回复时引用此帖
旧 2008-11-26, 10:04 AM   #8
初级会员
 
注册日期: 2008-11-18
年龄: 31
帖子: 16
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 4
bigboyx 正向着好的方向发展
默认 回复: [分享]非常通俗的VC/matlab混和编程例子

我是菜鸡,学习了。。。。。。。。。。。。。。。。。。。。
bigboyx 当前离线   回复时引用此帖
旧 2008-12-14, 02:09 PM   #9
普通会员
 
注册日期: 2008-02-29
年龄: 31
帖子: 92
感谢他人: 0
有 2 帖获得 10 感谢
声望力: 6
tolabfans 正向着好的方向发展
默认 回复: [分享]非常通俗的VC/matlab混和编程例子

http://hi.baidu.com/%C1%F5%D3%E6%E9%...6738da578.html
看不图片的到这里去看
tolabfans 当前离线   回复时引用此帖
旧 2010-05-25, 04:45 PM   #10
初级会员
 
注册日期: 2007-08-02
帖子: 3
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 0
pengyehui 正向着好的方向发展
默认 回复: [分享]非常通俗的VC/matlab混和编程例子

学无止境啊
pengyehui 当前离线   回复时引用此帖
回复

书签

标签
好东西

主题工具
显示模式

发帖规则
不可以发表新主题
可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 启用



所有时间均为北京时间。现在的时间是 10:57 AM


Powered by vBulletin
版权所有 ©2000 - 2012,Jelsoft Enterprises Ltd.
陕ICP备07001583号
感谢MEyu科技提供优质空间

SEO by vBSEO ©2009, Crawlability, Inc.