《《测绘程序设计》课件15来自07测绘3魏志刚》由会员分享,可在线阅读,更多相关《《测绘程序设计》课件15来自07测绘3魏志刚(51页珍藏版)》请在金锄头文库上搜索。
1、第八章Excel 与 Math lab在测绘工程中的应用,一、MATLAB概述 二、MATLAB的数值运算功能 三、MATLAB的符号运算功能 三、MATLAB程序设计 四、MATLAB的应用,8-2 Matlab在测绘工程中的应用,一、MATLAB概述,(一)MATLAB语言的发展:,MATLAB名字由MATrix和 LABoratory 两词的前三个字母组合而成。那是20世纪七十年代,时任美国新墨西哥大学计算机科学系主任的Cleve Moler出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK矩阵软件工具包库程序的的“通俗易用”的接口,此即用FORTRAN编写的
2、萌芽状态的MATLAB。,1984年由Little、Moler、Steve Bangert合作成立MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。,现今的matlab7.0拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。,自MathWorks公司1993年推出matlab4.0问世以来,matlab语言就成为了最具吸引力、应用最为广泛的科学计算语言;,1997年仲春,matlab5.0版问世,紧接着是5.1、5.2,以及199
3、9年春的5.3版。,2001年和2002年mathworks公司又相继推出了强大的matlab升级版本matlab6.0和matlab6.5,(二)MATLAB语言的特点:,1)语言简洁紧凑,使用方便灵活,库函数极其丰富 MATLAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用MATLAB进行科技开发是站在专家的肩膀上。,2)运算符丰富 由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。,3)MATLA
4、B既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。,4)程序限制不严格,程序设计自由度大 例如,在MATLAB里,用户无需对矩阵预定义就可使用。,5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。,6)MATLAB的图形功能强大。 在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。,7)功能强大的工具箱是MATLAB的另一特色。,MATLAB包含两个部分: 核心部分:有数百个核心内部函数 各种可选的工具箱 工具箱又分为两类:功能
5、性工具箱 学科性工具箱,功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功能,功能性工具箱用于多种学科。,学科性工具箱是专业性比较强的,面向专门的学科领域。如control toolbox, signl proceessing toolbox, commumnication toolbox等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而可直接进行高,精,尖的研究。,符号数学工具箱 SIMULINK仿真工具箱 控制系统工具箱 信号处理工具箱 图像处理工具箱 通讯工具箱 系统辨识工具箱 小波分析工具箱 神经元
6、网络工具箱 金融工具箱,8)源程序的开放性 开放性也许是MATLAB最受人们欢迎的特点。 除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。,9)MATLAB的缺点: 和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。,(三)MATLAB语言的功能: 强大的数值(矩阵)运算功能 广泛的符号运算功能 计算结果的可视化功能 可靠的容错功能 应用灵活的兼容与接口功能 信息量丰富的联机检索功能,1.矩阵运算功能,MATLAB提供了丰富的矩阵
7、运算处理功能,是基于矩阵运算的处理工具。 变量 矩阵,运算 矩阵的运算 例如 C = A + B ,A,B,C都是矩阵,是矩阵的加运算 即使一个常数,Y=5,MATLAB也看做是一个11的矩阵,2.符号运算功能 符号运算即用字符串进行数学分析 允许变量不赋值而参与运算 用于解代数方程、微积分、复合导数、积分、二重积分、有理函数、微分方程、泰乐级数展开、寻优等等,可求得解析符号解,3.丰富的绘图功能与计算结果的可视化,具有高层绘图功能两维、三维绘图 具有底层绘图功能句柄绘图,4.图形化程序编制功能,动态系统进行建模、仿真和分析的软件包 用结构图编程,而不用程序编程 只需拖几个方块、连几条线,即可
8、实现编程功能,5.MATLAB的兼容功能 可与C语言、FORTURE语言跨平台兼容 用函数CMEX、FMEX实现,6.强大的联机检索帮助功能,可随时检索matlab函数 可随时查询matlab函数的使用方法,(四)MATLAB语言系统的组成,(1)MATALB语言体系 高层次的矩阵数组语言 具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。,(2)MATLAB工作环境 包括管理工作空间中的变量数据输入输出的方式和方法, 以及开发、调试、管理M文件的各种工具。,(3)图形句相系统 这是MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高
9、层MATLAB命令,以及开发GUI应用程序的各种工具。,(4)MATLAB数学函数库 这是对MATLAB使用的各种数学算法的总称包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。,(5)MATLAB应用程序接口(API) 这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用c程序或 FORTRAN程序,包括从MATLAB中调用于程序(动态链接),读写MAT文件的功能。,MATLAB是一个集数值计算、图形管理、程序开发为一体的环境。,加上MATLAB更强的功能扩展能力, 与它的主系统一起,构成一个功能更加强大的系统,(五)MATLAB语言的应用,在欧美大学
10、里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教科书都把MATLAB作为内容。这几乎成了九十年代教科书与旧版书籍的区别性标志。MATLAB成为攻读学位的大学生、硕士生、博士生必须掌握的基本工具。,在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件。在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到MATLAB的应用。,在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首选软件工具。如美国National Instruments公司信号测量、分析软件LabVIEW,Cadence公司信号和通信分析设计
11、软件SPW等,或者直接建筑在MATLAB之上,或者以MATLAB为主要支撑。又如HP公司的VXI硬件,TM公司的DSP等等接受MATLAB的支持。,(六)matlab界面介绍,Matlab 常用的交互界面,命令窗口(command window) 历史命令窗口(command history) 当前目录窗口(current directory) 工作空间浏览器(workspace browser) 开始按钮(start),1.命令窗口(command window),Matlab的主要操作界面,大部分操作命令和结果在此进行 菜单栏Matlab7.0版比6.5版增加了debug(编译m文件)和d
12、esktop(界面置放模式) 减少了view 命令提示符 显示方式 字体、大小、颜色设置 files/preferences,命令窗口常用控制指令,也可以利用菜单命令实现 例如: dir d:MyProg %显示d:MyP rog目录下的文件清单 edit d:MyProgexm013_9.m %打开编辑器编辑exm013_9.m which exm013_9.m %指出exm013_9.m所在的目录,2. 历史命令窗口(command history),记录用户在Matlab命令窗口中输入的所有的命令 包括每次启动Matlab的时间和每次启动所有的命令行 对历史命令的编辑(复制/运行/创建m
13、文件/快捷方式/profile code),利用命令来创建“日志”来记录历史命令,diary 例: diary first_diary %输入复数 z1=10+5i; z2=5+9i; z3=6; a=z1,z2,z3 a = 10.0000 + 5.0000i 5.0000 + 9.0000i 6.0000 diary off Work 目录下/所有文件中打开first diary (默认路径,可修改),3. 当前目录窗口(current directory),当前目录浏览器管理Matlab中大量的函数和数据库 包括菜单栏、当前目录设计区,工具菜单和文件详细菜单 对文件详细菜单区域中文件可以
14、方便地进行编辑或运行,如何设置当前目录呢?,启动Matlab时,默认路径为 MATLAB701work Windows 创建目录,可以自动添加 Files/ set path 利用path命令来查看matlab的路径信息,4.工作空间浏览器(workspace browser),保存内存变量,从而可以方便地对其进行查阅和编辑等等 (双击浏览数组编辑器或右键其他编辑) 可在命令窗口利用操作命令在查阅和删除内存变量,内存变量的操作命令,1. 内存变量的查阅、删除 1)who,whos指令查询内存变量 who指令获取当前所有内存变量的名称列表。 whos指令获取详细的内存变量列表,包含变量类型、大小
15、等信息。 2)clear 指令删除内存变量 clear指令清除所有内存变量 clear v1 v2清除内存变量v1 v2,被删变量间用空格分隔 3)打开工作空间浏览器( WorkSpace ),可以看到所有内存变量的详细说明,和whos指令效果相同。并且可以通过右键点击变量引出现场菜单,对该变量进行编辑、删除、重命名、保存、绘图等操作。,数据文件的存取,1) 利用指令save、load实现数据文件(*.mat)的存取。 save/load filename %保存/打开文件filename.mat save/load filename v1 v2 %保存/打开变量v1 v2 2) 打开工作空间
16、浏览器 (WorkSpace),可以在右键现场菜单中选择Save Workspace as保存所有内存变量,或Save Selection as保存指定变量。,例 a=1 2 3;4 5 6;7 8 9; %输入一个3*3数组a b=This is a test; %输入一个字符串数组 c=3; d=0.2; who Your variables are: a b c d whos Name Size Bytes Class a 3x3 72 double array b 1x14 28 char array c 1x1 8 double array d 1x1 8 double array Grand total is 25 elements using 116 bytes clear c sav