使用VC调用matlab engine编程

本文介绍如何在VC环境中调用MatlabEngine实现图形绘制功能。通过详细步骤演示了配置环境、创建工程、编写调用代码的过程,并展示了利用engEvalString函数执行Matlab命令的具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用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型矩阵

 

                                                                                                               

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值