Matlab与V混合编程.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Matlab与V混合编程

Matlab与VC混合编程 众所周知,MATLAB是一套功能非常强大的商业数学软件,从信号处理,语音处理,数据采集,数值运算,图像处理,到电子仿真,金融分析等等,几乎在各个工业领域,他都已经得到了广泛应用,同时也取得了巨大的成功。 但是,由于Matlab是用一种脚本语言,他的解释是逐行执行的,程序中所有的变量都是用MxArray来实现的,所以为了保证通用性,它的执行效率非常低,这就是我们常常看到的:在开发一些复杂的算法时,通常会发现程序执行得特别慢,虽然Mathworks公司已经在竭力提高m脚本文件(script files)的运算速度,但目前为止效果仍然不能和实现同样功能的可执行程序相比。而且m脚本文件是不能脱离Matlab这个应用程序环境,这就大大制约了程序的可移植性和通用性。 本文的目的正是基于上述考虑,介绍如何利用matlab提供的C/C++编译器,将m文件编译成可执行的应用程序。编译环境是:MS VC++ 6.0和Matlab6.5。 一、??? MATLAB中的操作 1.没有使用图形相关的函数 由于MATLAB的编译器只能对函数m文件进行编译,所以如果原来的程序是脚本程序应改写成函数形式。举例如下: 建立一个m文件test1.m,内容如下: function y = test1(n) y = 1 ; for i = 1 : n y = y * i ; end 用如下命令对其进行编译: mcc –t –L CPP –h test1.m (如果程序由多个m文件组成,在编译命令中只需要指定主文件即可,mcc会自动查找相应的m文件进行编译)编译完成后会得到与m文件名相对应hpp和cpp文件,本例中是test1.hpp和test1.cpp。 2. 使用了图形相关的函数 建立一个m文件test2.m,内容如下: function test2 plot(rand(10)); 用如下命令编译: mcc –p –B sglcpp test2.m (如果程序由多个文件组成,处理方法同上) 编译完成后得到与m文件名相对应的hpp和cpp文件、一个主函数文件、bin目录中的两个Fig文件以及一个exe文件。我们需要的只是与m文件相对应的hpp文件、cpp文件以及bin目录中的两个fig文件,本例中是test2.hpp,test2.cpp以及bin目录中的FigureMenuBar.fig和FigureToolBar.fig。? 二、VC中的操作 相比MATLAB中的操作,VC中需要设置众多的编译选项,显得比较复杂。另外,VC中可选的工程类型比较多,本文将说明MATLAB编译得到的源程序在如下工程类型中的使用 ????????? MFC Appwizard(exe) (Dialog Based) ????????? Win32 Console Application ????????? Win32 Application 其实在这几种类型的工程中大部分的操作都是相同的,本文先描述相同的操作,再说明不同的部分。 1.用VC建立相应类型的工程,把第一步中提到的源程序拷贝到工程所在目录中。 2.选择菜单Tools-Options-在属性页中选择Directories-下拉框中选择Include Files,在其最后加入 %MATLAB6P5%\EXTERN\INCLUDE\CPP %MATLAB6P5%\EXTERN\INCLUDE 其中%MATLAB6P5%为MATLAB的安装路径,如下图所示: 再在下拉框中选择Library Files,在最后加入 %MATLAB6P5%\EXTERN\LIB\WIN32\MICROSOFT\MSVC60 %MATLAB6P5%\EXTERN\LIB\WIN32 如下图所示: 3.选择菜单Project-Settings-属性页Link-下拉列表中选择Input,在Object/library modules文本框中加入 libmmfile.lib libmatlb.lib libmx.lib libmat.lib libmatpm.lib sgl.lib libmwsglm.lib libmwservices.lib 注意下面的Ignore Libraries文本框,这里需要根据不同的工程类型进行填写,稍后再分情况说明。如下图所示: 4.选择C/C++属性页,在下拉列表中选择Preprocessor,在Preprocessor definitions中加入MSVC,IBMPC,MSWIND如下图所示: 再在下拉框中选择Precomplied Headers,选中Automatic use of precompiled headers,在其中填入stdafx.h,如下图: 5

文档评论(0)

ptaosqi + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档