新闻中心

EEPW首页 > EDA/PCB > 设计应用 > Matlab与C/C++混合编程接口及应用

Matlab与C/C++混合编程接口及应用

作者:时间:2012-08-27来源:网络收藏

下运行example2.exe: mex -f example2.c。运行结果如图1 所示:

利用计算引擎调用的特点是:节省大量的系统资源,应用程序整体性能较好,但 不能脱离的环境运行,且运行速度较慢,但在一些特别的应用[9](例如需要进行三维 图形显示)时可考虑使用。

3.2 利用mcc 编译器生成的cpp 和hpp 文件

Matlab自带的C++Complier--mcc,能将m文件转换为C/C++代码。因此,它为C/C++程序调用m文件提供了另一种便捷的方法。下面举例说明相应步骤:

a.新建example3.m:function y=exmaple3(n) y=0; for i=1:n y=y+i;end

保存后在命令窗口中输入:mcc -t -L Cpp -h example3.

则在工作目录下生成example3.cpp 和example3.hpp 两个文件。

b.在VC 中新建一个基于对话框的MFC 应用程序Test2,添加一个按钮,并添加按钮响应函数,函数内容见f 步。将上面生成的两个文件拷贝到VC 工程的Test2 目录下。

c.在VC 中选择:工程->设置,选择属性表Link 选项,下拉菜单中选择Input,在对象 / 库模块中加入lIBMmfile.lib libmatlb.lib libmx.lib libmat.lib libmatpm.lib sgl.lib libmwsglm.lib libmwservices.lib , 注意用空格分开; 而在忽略库中加入 msvcrt.lib;

d.选择属性表C/C++选项,下拉菜单选General,在预处理程序定义中保留原来有的内 容,并添加MSVC,IBMPC,MSWIND,并用逗号隔开。选择下拉菜单的Precompiled Headers 选 项,在“自动使用预补偿页眉”中添加stdafx.h,然后确定。

e. 选择: 工具-> 选项, 属性页选择“ 目录” , 在include files 加入: C:MATLAB6p5p1externinclude , C:MATLAB6p5p1externincludecpp ; 然后在 Library files 里面加入: C:MATLAB6p5p1binwin32 , C:MATLAB6p5p1extern libwin32microsoftmsvc60;注意根据用户的Matlab 安装位置,修改相应目录。

f.在响应函数中添加头文件:#include matlab.hpp #include example3.hpp 函数响应代码为:

int i; mwArray n; n=10; n=example3(n); i=n.ExtractScalar(1);

CString str; str.Format(example3 的返回值是:%d,i); AfxMessageBox(str);

g. 编译,连接,执行,结果如图2 所示。



关键词: Matlab 混合编程 接口

评论


相关推荐

技术专区

关闭