Matlab和Visual C++的混合编程(2)
时间:2025-02-24
时间:2025-02-24
Matlab和Visual C++的混合编程
3) engGetArray,从Matlab engine中获得一个Matlab矩阵,用于数据交换
4) engEvalString,执行一个Matlab命令
5) engPutArray,从应用程序向Matlab engine发送一个Matlab矩阵,用于数据交换
6) engOutputBuffer,作用是创建字符缓冲区以获取Matlab文本输出
运用Matlab engine和Visual C++集成开发步骤如下:
1) 导入相应的库。Visual C++要调用Malab engine,就需要相应的库文件,在Matlab安装目录下\extern\include\下有如下文件:libeng.def、libmx.def、libmat.def和matlab.def等,在DOS命令提示符下执行命令生成相应的库文件。生成lib的命令如下:
lib /def:libeng.def /out:libeng.lib /machine:ix86
生成了libeng.lib、libmx.lib、libmat.lib和matlab.lib之后,把它们加入到Visual C++工程的Project->Setting->link->Object/Library Modules文本框中。
2) 编写m文件。根据我们需要的图像处理功能编写m函数或者脚本。
3) Visual C++界面设计。
4) 把m文件加入到Visual C++工程中,在调用engine的文件中加入 #include “engine.h”,在CMainFrame的构造函数中加入如下代码:
Engine *ep;
if( !( ep = engOpen( NULL) ) )
{
fprint( stderr, “\nCan’t start Matlab engine\n”);
return EXIT_FAILURE;
}
在析构函数中加入engClose( ep );,在相应的菜单相应函数中加入类似 engEvalString( ep, “surf( peaks )” );等执行Matlab语句的代码。
以上就运用Matlab engine在Visual C++工程里面执行matlab的语句或者m文件,这一方法不能脱离Matlab的后台运行,要求运行这种程序的用户的计算机都装上一个庞大的Matlab,所以这样的结合方式不能用于商业用途和推广。
2.2 Matlab Add-in
Matlab 6.0以后版本对其Compiler作了较大的改进,改进之一是其Matlab Add-in提供了一个Matlab和Visual C++直接集成的途径。它可以快速集成m文件到C++工程中,创建独立的 C/C++应用程序或C MEX DLL;可以通过m文件创建共享库或MEX文件;可以内含Visual Matrix Viewer,调试过程中可以查看矩阵变量的值;直接修改m源文件而不是修改生成的C/C++文件;可以方便快捷地打包应用程序。
Matlab Add-in的安装:
1) 启动Matlab,运行“mex -setup”,按照菜单提示选取Microsoft Visual C++。它将其配置MEX使用Microsoft Visual C++为默认的编译器(创建C-MEX文件必需),并安装Matlab Add-in所需文件到Microsoft Visual C++目录。
2) 在Matlab环境下运行“mbuild -setup”, 按提示选取Microsoft Visual C++。它将配置使用Microsoft Visual C++为默认的编译器(创建独立应用程序必需),并安装Matlab Add-in所需的Matlab Compiler和C/C++数学库文件到Microsoft Visual C++目录。
3) 在Matlab环境下运行“cd(prefdir)”和“mccsavepath”。它将保存当前Matlab路径到mccpath文件中,这是因为Matlab Add-in脱离Matlab运行,否则它无从知道Matlab路径。
4) 在Microsoft Visual C++环境中配置Matlab Add-in,方法如下:从菜单“Tools-> Customize”选择“Add-ins and Macro Files”选项卡,选中“Matlab Add-in”, 点击“Close”。 Microsoft Visual C++工具栏出现Matlab Add-in图标,以后每次启动VC,将自动加载Matlab Add-in。
5) 配置Windows系统。在Windows 95/98系统下,找到config.sys,添加一行:shell= c:\ /e:32768 /p(Windows ME有所不同,需设置Conagent.exe的属性Memory选项卡的Initial Environment值为4096)。
通过Matlab Add-in创建一个Stand-alone程序步骤:
1) 启动Visual C++,创建一个“Matlab Project Wizard”Project。
2) 点击Next,你可以选择所生成的应用程序的类型:Windows Console EXE、C-MEX
…… 此处隐藏:219字,全部文档内容请下载后查看。喜欢就下载吧 ……