使用VC调用matlab engine编程

使用VC调用matlab engine编程

       首先要在电脑中装VCMATLAB,我的电脑装的是VC6.0MATLAB7.1.

       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,"plot(x,y);");

         engEvalString(ep,"title('画正弦线');");

         ::MessageBox(NULL,"任意键继续","VC调用matlab engine示例程序",MB_OK);

         engClose(ep);  

}

       到此,这个程序已经可以运行了!   程序执行界面:

                                  

       点击按钮后调用matlab生成的正弦线:

 

       可以看出关键的语句就是:engEvalString。其用法也很简单。

下表列出了几个常用的Matlab引擎的C语言调用函数:

函数名

功能

engOpen

打开Matlab引擎

engEvaString

Matlab引擎中执行输入的Matlab命令

engPutArray

将数据存入Matlab引擎

engGetArray

Matlab引擎中取出数据

engClose

关闭Matlab 引擎

engSetVisible

控制Matlab窗口的隐显

mxDestroyArray

从内存中删除一个Matlab数组

mxGetM

获得矩阵的行数

mxGetN

获得矩阵的列数

mxGetPr

获得矩阵变量的指针

mxCreateDoubleMatrix

创建一个double型矩阵

 

                                                                                                               

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值