基于COM的MATLAB与C#NET混合编程的实现与应用.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于COM的MATLAB与C#NET混合编程的实现与应用.pdf》由会员分享,可在线阅读,更多相关《基于COM的MATLAB与C#NET混合编程的实现与应用.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 2 O卷 第 4期 2 0 0 6年 7月 山 东 理 工 大 学 学 报(自 然 科 学 版)J o u r n a l o f S h a n d o n g Un i v e r s i t y o f Te c h n o l o g y(S c i Te c h)V0 1 2 O NO 4 J u 1 2 0 0 6 文章编号:1 6 7 2 6 1 9 7(2 0 0 6)0 4 0 0 2 6 0 4 基于 C OM 的 MATL AB与 C#NE T混合编程的实现与应用 赵 士伟,赵 明波,陈 平(山东理工大学 计算机科学与技术学院,山东 淄博 2 5 5 0 4 9)摘
2、要:介绍 了一种基于 C OM 组件 的 MATL A B与 C#NE T混合编程的实现方法 论述 了 MA TL AB中C OM 组件的编程、利用 C OM B u i l d e r 开发 C OM 组件、组件 的注册 以及在 C#NE T 中接 口、调用的方法,并给出了在数据采集中曲线拟和的实例 关键词:C 0M;MATL AB;C#NE T;混 合编程 中图分类号:T P 3 1 1 1 1 文献标识码:A I mp l e me n t a t i o n a n d a p p l i c a t i o n o f M ATLAB C#NET i nt e g r a t e d
3、 p r o g r a mmi n g b a s e d o n COM ZHAO Shi we i,ZHAO Mi n g b o,CHEN Pi ng (S c h o o l o f Co mp u t e rS c i e n c e a n d Te c h n o l o g y,S h a n d o n g Un i v e r s i t y o f Te c h n o l o g y,Z i b o 2 5 5 0 4 9,Ch i n a)Ab s t r a c t:A me t h o d o f MATL AB C#NE T i n t e g r a t e
4、 d p r o g r a mmi n g b a s e d o n COM i s i n t r o d u c e d Th e f o l l o wi n g t e c h n i q u e s a r e d e mo n s t r a t e d i n d e t a i l,i n c l u d i n g p r o g r a mmi n g wi t h COM i n M ATL AB,d e v e l o p i n g COM c o mp o n e n t s wi t h COM Bu i l d e r。r e g i s t e r i n
5、 g C【)M c o m p o n e n t a n d h o w t o u s e COM i n C#NE TAn e x a mp l e o f d a t a g a t h e r i n g i s g i v e n Ke y w o r d s:COM;MATLAB;C#NET;h y b r i d p r o g r a mmi n g MA T L A B是 Ma t h Wo r k s 公司于 1 9 8 2年推出 的一种功能强大、效率高、交互性好的数值计算和 可视化计算机高级语言,它集数值计算、信号处理 和图形分析等功能于一体,被称为演算纸式的语 言 它
6、强大的功能为各领域 的应用提供了基础,已经从最初的“矩阵实验室”渗透到科学 与工程计 算的多个领域,如信号处理、自动控制等_ 1 MA T I AB作为一种高级语言,具有极高的编程效率,但 它也存在一些缺陷:界面开发能 力较差!;使用的 收稿 日期:2 0 0 51 1 2 4 作者简介:赵士伟(1 9 8 0一)男 硕士研究生 是解释性语言,大大限制了它的执行速度;源代码 的公开不利于算 法和数据 的保密;局限于 MA T L A B运行环境而不能用于开发商用软件 C#NE T 是针 对 N E T 平 台而设计 的,是微 软 NE T计划中的主要开发语言 利用 C#NE T 开发的系统具有
7、界面友好、执行速度快、易维护和 升级等优点,能够生成可执行 文件能有效的保护 算法和 数据,并 可脱 离 编 程 环 境 运行 但 是 在 工程计算方 面,和MATL A B相 比编 程显得 复杂 维普资讯 http:/ 第 期 赵士伟。等:基于 C O M 的 MAT 1 AB与 C#NE T混合编程 的实现与应用 的多 因此实现 C#NE T与 MAT I AB混合编 程 使两者结 合起来。协同工作,必将提高软件开 发效率 使所开发的软件具有更高 的性能,更大的 应用范围。也可以为科学研究和工程技术提供更 强 的技 术支持 1 C()M 介绍 组 件 对 象 模 型(C o mp o n
8、e n t Ob j e c t Mo d e l。c()M)。是 组 件 之 间 相互 接 口的规 范,是 0L E (Ob j e c t L i n k i n g E mb e d d i n g)和 Ac t i v e X共同 的基础 其作用是 使各种软件构件和应用软件能 够用 一 种 统 一 的标 准 方 式 进 行 交 互 C 0M 不 是 一种面向对象的语言。而是一种与源代码无关 的 二进 制标准 C OM 所建立的是一个软件模块 与 另一个软件模块之间的链接,当这种链 接建立之 后 模块之间就可以通过称之为“接 口”的机制来 进行通 信 C OM 本质 上仍 然是 客户$t
9、 务器 模 式 客户(通常是应用程序)请求 创建 C OM 对象 并通过(、OM 对象的接 口操纵 C OM 对象 服务器 根据客户的请求创建并管理 C OM 对 象 客户 和 服务器这两种角色并不是绝对的 MATI AB支持组件 自动化(C OM Au t o ma t i o n)即一个 C OM 协议,该协议允许一个程序或 组件去控制另一个程 序或组件 因此,MATL A B 支持的组件技术 主要 包括 以下几个方面:在 MATI AB下运行其它 软件 的组件;在其 它程 序下运 行 MA TL AB的组 件(包 括 MA TL AB 自 身);将 所需的 MATL A B功能(通常 由
10、若干个 m 和 me x文 件 构 成)用 MAT L AB 自 带 工 具(、()M B u i l d e r自动转换生成组件,以供其它程序 使用 2 MA TI AB中 C OM 组件的编程 与 I l 律 每个 MATL A B C OM 组件都作 为一个标准 的独立的COM 对象创建,可以在 C#NE T中调 用 一个 C OM 组件可以包含许多类(C l a s s)(添加 的方法在 2 2中介绍),类包括方法、属性、事件,用于和用户程序交互 下面 以组件 My P o l y f i t 为 例介绍 C OM 组件 的编程创建方法 该组 件包含 一个名称为 My P o l y
11、f i t 的类,可完 成曲线 拟和 的 任务 该类 具 有 p o l y n i h e和 p o l y n i h e l 2种方 法,分别完成带图形显示的多项式曲线拟和和不带图 形显示的多项式曲线拟和 的功能 还具有 X,Y 2 个属 性 文 章 中 的实 例 在 Ma t l a b 7 0和 Mi c r o s o f t Vi s u a l S t u d i o NE T 2 o 0 3中调 试通 过 2 1 C 0 M 组件 的编 程 1)添加类 的方 法 在 Ma t l a b中编 写 p o l y n i h e m 和 p o l y n i h e 1 m
12、2个函数 其 中 p o l y n i h e m 实现最小二乘的多 项式曲线拟和,返回拟 和的参数并将拟 和结果图 形显示出来,p o l y n i h e 1 m也 同样实现最 小二乘 的多项式曲线拟 和,返 回参数但并不显示 图形结 果 2)添 加类 的属性 类的属性允许对象在方法调用之间保留一个 内部 的状态 C o rn B u i l d e r 把类 中所有 M 文件的 共享 的全局变量转化为类 的属性 M 文件中全局 变量以关键字 g l o b a l 描述 类 的属性是相 当有用 的,例如在程序中把一个不经常改变值而需要经 常对之操作的大的数组定义为属性,这样数组的 值
13、可以作为属性被设置为一次,就不需要在每个 方法 中进行 传递 了 作为示例在类 My P o l t fi t中 定 义了 2个属性 X,Y,如 下:p o l y n i h e 1 m f u n c t i o n E p 3=p o l y n i h e l(n)g l o b a l X;将被 C OM B u i l d e r 转化 为属性 g l o b a l Y;将被 C O M B u i l d e r 转 化为属性 p=p o l y f i t(X,Y n);p o l y n i h e m f u n c t i o n E p 3=p o l y n i h
14、 e(n mi n X ma x X)g l o b a l X;将被 C O M B u i l d e r 转化 为属性 g l o b a l Y;将被 C OM B u i l d e r 转化为属性 p=p o l y f i t(X。Y。n);x i=l i n s p a c e(mi n X,r n a x X);x-a x i s d a t a f o r p l o t t i n g z=p o l y v a l(P,x i):p l o t(x,Y,0 ,x,Y,x i,Z,:)x l a b e l(x ),y la b e l(y f(x),t i t l e(
15、C u r v e F i t t i n g )以上 2个 函数添加到 C OM 组件 中后,全 局 变量 X Y将转化为属性 3)添加类的事件 C o rn B u i l d e r 支持事件 在 MATL A B函数中 加入一段”9 5#e v e n t”程序可把 函数转 化为事 件 函数,添加此函数 到类 中即为此类 添加 了一个事 件 可 以在 MATL A B的其他需要与 外部程序交 维普资讯 http:/ 2 8 山 东 理 工 大 学 学 报(自 然 科 学 版)互的函数 中调 用事件 函数 以引发事 件,在 C#NE T中编写该事件的事件处理函数,这样可实现 组件函数内部
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 COM MATLAB NET 混合 编程 实现 应用
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内