《MATLAB与VC混合编程指导书.doc》由会员分享,可在线阅读,更多相关《MATLAB与VC混合编程指导书.doc(84页珍藏版)》请在金锄头文库上搜索。
1、MATLAB与VC混合编程实习指导书5目录第一部分 序言-3第二部分 Matlab的可视化功能简介-42.1、Matlab的可视化功能简介- -42.2、Matlab的可视化功能实现-8第三部分 使用Matcom进行混合编程-193.1、Matcom 的简介-193.1.1、Matlab与VC混合编程的实现方法-193.1.2、Matcom 的简介-203.2、Matcom的安装-21 3.3、Visual Matcom开发环境的配置-233.3.1、Visual Matcom开发环境的配置(一)-233.3.2、VC与Matcom解线性方程组对比-23 3.3.3、Visual Matcom
2、开发环境的配置(二)-26 3.3.4、Visual Matcom开发环境的配置(三)-273.3.5、Visual Matcom开发环境的配置(四)-293.3.6、Matcom C+ 矩阵库的矩阵类Mm-293.4、Matcom的应用实例-333.4.1、实例1 Mm矩阵的创建及使用-333.4.2、实例2 VC中调用Matlab函数画图-36 3.4.3、Matcom C+矩阵库的图形和图像显示功能-393.4.4、实例3 图形绘制的基本功能演示-413.3.5、实例4 利用Matcom绘制动态曲线-45 3.3.6、实例5 Matcom二维和三维曲线绘制综合应用-57第四部分 使用其他
3、方式进行混合编程-714.1、Matlab COM接口混合编程-714.2、在VC+中调用Matlab Engine编程-784.3、Matlab Engine API介绍-81第一部分 序言在我学习数学实验这门课的时候,对Matlab强大的科学计算功能深深佩服,但是觉得Matlab可视化编程太繁杂了(我的数学实验作业就是用Matlab写了一个可视化程序,见后),于是乎我就想到用VC+来做应用程序的界面,而用Matlab来实现应用程序的功能,这样在VC中就不用再写复杂的算法了,在Matlab中也就不用再为复杂的可视化而烦恼了,所以此时我就萌生一种想法,何不来一个Matlab与VC进行混合编程的
4、研究呢?而在此时,正赶上学校遴选创新人才,所以我就把Matlab与VC混合编程的课题研究作为我的一个创新点,在这个创新课题的研究中,得到讲授数学实验这门课的老师沈远彤老师的大力支持,在此非常感谢老师的栽培与信任。由于个人能力有限和时间紧迫,我个人也没能够深入地研究,所以这本实习指导书的内容比较简略,本书的资料大多来源于互联网。最后衷心希望有想往这个方向发展的同学能够在我的基础上有更好的发展!第二部分 Matlab的可视化功能简介MATLAB自1984年由美国MathWorks公司推向市场以来,已成为全球公认的科学应用软件,已被从事科学研究、工程计算的广大科技工作者。高校师生确认为必须掌握的计算
5、工具,是从理论通向实际的桥梁,也是最可信赖的科技资源之一。Matlab 除了强大的科学计算功能以外,可视化功能也是其一大特色。现在,市面上流行着许多可以实现可视化的软件,比如:3D max 、flash 等等,都可以做出多彩、万变的图形和动画效果。但是,这些软件仅仅是对现成的图形做一些处理和变化。而Matlab作为一种“数学家软件”,数学专用软件,它的可视化功能也是和数密不可分的。Matlab的可视化是数据的可视化,是基于数学的运算和逻辑的。它是由数值、数据、 函数等数学元素产生图形和动画等可视化效果,图形等根据数的变化而变化,故而可以通过数值、逻辑、运算的改变而轻松改变可视化效果。同样,通过
6、Matlab 的可视化效果,可以从一堆杂乱的离散数据中去观察和发现数据间的关系,感受由图形所传递的数据间的内在本质,直观的去理解数。Matlab 的这种图与数之间的相辅相成的关系,极大的方便了科学研究 ,这也是Matlab 之所以获得广大科技工作者以及高校师生喜欢和认可的重要因素。2.1 Matlab的可视化功能简介为了实现Matlab的可视化功能,它提供了很丰富的作图函数和图形处理指令,理解和掌握了这些函数和指令,我们就可以去实现Matlab 多样的可视化功能。这些函数和指令一般是Matlab 的“高层”指令,例如:plot、comet 、movie等。这种指令,形态和格式比较友善,易于理解
7、和应用。一、句柄图形体系可视化的基础Matlab 的一些图形处理函数都是Matlab 的“高层”指令,而这些“高层”指令都是由Matlab 的“低层”图形函数写成的,或以M函数的形式,或以内装函数的形式。所以,为了更深入理解高层绘图指令,绘出更精细、更生动、更个性的图形,利用低层作图函数和图形对象属性开发专用绘图函数,作出更人性化的可视化作品,我们将详细介绍Matlab 的这些“低层”图形函数,即句柄图形体系。所谓句柄图形,就是一组“低层”图形函数的名称,是一种面向对象的绘图系统。它深入Matlab 可视化功能的内核,可以提供创建计算机图形所必须的各种软件,它所支持的指令,可直接创建线、文字、
8、网线、面以及图形用户界面等基本的图形对象。低层的函数指令使用起来,不像“高层”指令那样数学概念清晰,调用格式简明易懂。但低层函数指令直接操作基本绘图要素(Basic drawing elements),可更细致、更具个性地表现图形,更自然、贴切地展现应用场合地物理意义。句柄图形的基本思想是:Matlab 的每一个可视部分就是一个对象,每个对象都有一个相应的唯一的标识符或者句柄,并且每个对象都有一组可以根据需要进行修改的属性,Matlab 句柄图形的这一基本思想就是它实现可视化功能的基本方法和重要原则。首先,介绍一下句柄图形的几个重要概念 ,也就是在句柄图形的基本思想中提到的几个概念。1、对象:
9、(即图形对象) Matlab 把用于数据可视和界面制作的基本绘图要素称为句柄图形对象(Handle graphics object),比如:线、面、控件、坐标轴等。一个图形对象就是一个可以被单独处理的单位,可以被独立的操作。Matlab 的可视化的实现实际上就是对对象进行操作处理完成的。图形命令所创建的都是图形对象,包括有图形窗口或者仅包括图形,以及坐标轴、线、表面、文本等。在Matlab 中生成的每个具体图形都由若干不同对象构成,每个具体图形不必包含全部对象,但每个对象必须具备根屏幕和图形窗(简称图)。在句柄图形体系中,各图形对象并不平等,他们之间的关系可用以下树结构层次(Tree-stru
10、ctured nierarchy)表示: 对象是句柄图形的基础和关键,后面将后面介绍各种对象。2、对象句柄:每个具体对象都有一个“与生俱来、终生不变”的独特身份,即句柄(handle),是一个双精度数。句柄是存取图形对象的唯一规范识别符,不同对象的句柄不可能重复和混淆。每台计算机,根对象只有一个,即屏幕,它的句柄总是数字0;而简称为图的图形窗口(figure windows)的句柄总是正整数,它用来标识图形窗的序号。注意:对根屏幕、图对象来说,数字可以直接作为调用对象的句柄,但不要企图通过直接输入双精度数,作为其他对象的句柄。这些对象的句柄只能由相关指令运行而得。如:h_ax=gca 就返回当
11、前图形中当前坐标系(axis)的句柄。3、对象属性:“每个对象都有一组可以根据需要进行修改的属性”,这些属性由属性名以及相应的属性值构成,定义了对象的特征,通过设置、修改这些属性,用户可以根据需要灵活地改变、调整图形对象显示的方式。 有的属性名比较“大众化”,在所有的对象中都能见到(由下面表中列出),而与每个对象类型(如:线、面等)相关的属性都是唯一的。对象可以包含很多属性,例如:对象的位置、大小、颜色等等。对对象的操作,实际上就是对对象属性的操作。每个不同的对象都有其自身独立的属性,这就保证了在用户改变这些属性时,不会改变其它同类型的对象的属性。 在生成一个对象的时候,其初始化属性值就是默认
12、属性值。这些属性值可以在生成对象时同时设置,例如:语句hf_1=figure(color,r),生成一个图形窗口对象,颜色为红色,将句柄赋予hf_1。也可以在对象生成后再修改它的属性值。4、get语句和 set语句-句柄图形的基本语句 在对象生成后再查看和修改它的属性值,函数inspest提供了相应的图形用户界面,只需输入inspest(H),就可以打开一个图形用户界面,其中H是要查看和修改的对象的句柄,这种方法比较直观,易懂,这里不做详细介绍。现在介绍另外一种查看和修改对象属性的方式,get语句和 set语句。get语句和 set语句被用来获得和修改句柄图形对象的属性。get语句返回对象的一
13、个和多个属性的当前值, 最常用的调用语法为: get(handle,propertyname)例: p=get(hf_1,position) 返回句柄为hf_1的图形对象的位置向量。set语句改变句柄图形对象的属性值,其语法为: set(handle,propertyname1,propertyvalue1,propertyname2,propertyvalue2)例:set(hf_1,color,r) 将句柄为hf_1的图形对象的颜色改为红色。Matlab的可视化实际上是以对对象的操作所实现的,而对象的操作又是对对象属性的操作,故而有了get语句和 set语句就基本可以实现Matlab的可视化。get语句和 set语句的运用非常简单易学,但要做出出色、人性化、多变的作品,就需要灵活、熟练地运用这两个