计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

VC 与MATLAB接口编程方法与实现(1)

2014-07-16 01:09
导读:计算机应用论文论文,VC 与MATLAB接口编程方法与实现(1)怎么写,格式要求,写法技巧,科教论文网展示的这篇文章是很好的参考: 摘 要 本文简介了VC 和MATLAB特点,探讨了MATLAB与VC 接口编程的三
摘 要 本文简介了VC 和MATLAB特点,探讨了MATLAB与VC 接口编程的三种方法,并详细论述了MCC和COM组件接口编程的方法和实现过程。研究表明:采用VC 和MATLAB 接口编程方法降低了编程难度,较好地发挥了两者各自的优势。 关键词 MATLAB;VC ;MCC;COM;接口编程 MATLAB是美国MathWorks公司研制开发的一种科学计算软件,它将高性能的数值计算、符号计算和可视化集成在一起,并提供了大量的内置函数以及功能丰富的工具箱,使用方便,编程效率高。然而,MATLAB是一种解释性语言,运行效率低,不适合作为通用的编程平台。 VC 是Microsoft公司推出的一个基于Windows平台的可视化的集成开发环境,在运行速度、功能性以及应用程序界面开发方面功能强大,但在数值计算和图形绘制方面,VC 并不具备太多优势。因此,采用MATLAB进行核心程序的开发,用VC 制作出友好的程序界面,然后将两者结合起来,可以较大地提高编程效率。1 VC 与MATLAB接口方法概述1.1 MATLAB引擎方式 MATLAB引擎采用客户机/服务器(Client/Server) 的方式,提供了一组MATAB API函数,通过调用这些函数实现以用程序进程之间的数据传递。在运用中,让VC 程序作为前端客户机,它向MATLAB引擎传递命令和数据,并从MATLAB引擎接受数据信息,实现动态通讯。1.2 MATLAB编译器(MCC) MCC是MATLAB中经过优化的编译器。使用MCC,用户可以将MATLAB数学库、图形库和界面的MATLAB程序转化为独立于MATLAB的EXE应用程序和DLL动态连接库,在VC中编写程序界面并加载调用动态连接库,实现两者之间的连接。1.3 COM组件 组件对象模型(简称MCR)是以组件为发布单元的对象模型。它提供一种可以共享二进制代码的工业标准,允许任何符合标准的程序访问,所以COM作为不同语言之间的协作开发是非常方便的。MATLAB的COM编译器是在MATLAB6.5中才开始提供的一个新工具,从MATLAB7.0起,这个产品改名为MATLAB Builder for COM。基于COM的混合编程方法也是Mathworks公司推荐使用的方法。 以上三种方法中,采用MATLAB引擎方式,应用程序整体性能好,MATLAB引擎支持功能全面,但需要MATLAB后台运行,不能脱离MALAB环境。而MCC方法和COM组件方法均可以脱离MATLAB环境,应用程序运行效率高,利于软件的开发,本文将重点论述MCC和COM组件方法。2 MATLAB编译器(MCC)2.1 MATLAB与VC 接口配置 采用MCC方法需要对MATLAB和VC 接口设置,配置步骤如下: 1) MATLAB编译器配置 首先在MATLAB命令提示符下输入mbuild-setup 命令,选择编译器,(需要注意的是必须确保计算机上已经安装了某个版本的VC ,本文选择visual C 6.0)完成编译器设置。 2) VC 环境设置 (1)设定头文件和库文件路径。在VC 环境菜单栏中选择Tools->Options->Directories,在“Show directories for”栏中首先选择Include files,然后在“directories”中将\Extern\Lib\Win32\ Microsoft \MSVC 60添加进去。再次在“Show directories for”栏中选择Librarys files,再在“directories”中添加\Extern\Include。 (2)设置编译连接选项。在VC 环境菜单栏中选择Project ->setting,然后选择link选项卡,在object/library modules栏中添加mclmcrrt.lib libtest.lib;选择General选项卡,在Microsoft Foundation Classes栏中选择Use MFC in a Shared Library。2.2 实例演示 完成MATLAB和VC 的接口设置以后,就可以实现MATLAB和VC 的接口编程,具体步骤如下: 1) 编写M函数文件“mypascal.m” function m=mypascal(n) m=pascal(n); m=m'; 示例M函数文件的作用是生成一个n阶的帕斯卡矩阵并返回,Pascal矩阵特点:第一行和第一列的元素均为1,其他位置的元素是前方的元素和上方的元素之和。需要注意的是:由于MATLAB中矩阵存储方式是以矩阵的列为先,也就是数据从第一列开始逐列存储的,而C/C 中矩阵则是以第一行开始逐渐存储的,因此在函数的最后一行对返回矩阵取转置运算,等效于使得计算得到的矩阵数据以行模式存储。 2) 编译M文件 在MATLAB命令行输入mcc-B csharedlib:libtest mypascal.m-v命令(或mcc-W lib:libtest-T link:lib mypascal.m)将m文件编译成C共享动态链接库文件。命令执行完毕后,在当前目录中生成C头文件 (libtest .h) 、引入库文件 (libtest.lib) 、ctf(libtest.ctf) 文件、动态链接库文件 (libtest.dll) 、C源文件 (libtest.c)等8个文件。 3) 创建工程对话框 运行visual C 创建一个对话框工程,取名为test,接受所有默认的设置。去掉对话框上的静态文本和按钮,增加一个按钮、一个静态文本框、编辑框以及一个List Control,鼠标右键单击List Control,选择Properties,把View改成Report,对话框界面如图1所示。给List Control控件添加ClistCtrl类的对象m_List,给编辑框关联一个整型成员变量m_size,给按钮增加一个消息响应函数。
上一篇:使用JCA inbound实现信息流入集成(1) 下一篇:没有了