一步步学如何使用VC调用matlab engine编程

    这里不再介绍 VC matlab 的各自优劣。直接给出一个最简单的例子。跟着文中步骤一步步来做,肯定会成功的。

       废话少说。

       Matlab Engine 采用 Client/Server 的方式,通过 ActivcX 通道和 Matlab 接口来实现在 VC 编程环境中直接调用 matlab 中的指令。调用使用的函数是: engEvalSting 。后面将讲到此函数的使用方法。

       下面是完整的步骤。如果是第一次使用,则要设置一下 VC 的编程环境中的 include lib 的路径指向。假设 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 ,速度无法保证哦。等这类程序熟练以后,大家可以再去试试 mex dll com 组件调用等更加高级的内容。

       程序执行界面:

                                  

 

 

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

 

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

                                                                                                               


转自:http://hi.baidu.com/%C1%F5%D3%E6%E9%D4/blog/item/88917e01d5925006738da578.html
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值