实验八 M文件与MATLAB程序设计

上传人:di****ng 文档编号:36424988 上传时间:2018-03-28 格式:DOC 页数:11 大小:341.84KB
返回 下载 相关 举报
实验八  M文件与MATLAB程序设计_第1页
第1页 / 共11页
实验八  M文件与MATLAB程序设计_第2页
第2页 / 共11页
实验八  M文件与MATLAB程序设计_第3页
第3页 / 共11页
实验八  M文件与MATLAB程序设计_第4页
第4页 / 共11页
实验八  M文件与MATLAB程序设计_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《实验八 M文件与MATLAB程序设计》由会员分享,可在线阅读,更多相关《实验八 M文件与MATLAB程序设计(11页珍藏版)》请在金锄头文库上搜索。

1、西北农林科技大学实验报告学院名称学院名称:理学院 专业年级专业年级:姓姓 名名: 学学 号号:课课 程程:数学软件实验 报告日期报告日期:2014 年 12 月6 日实验八 M 文件与 MATLAB 程序设计一实验目的MATLAB 语言被称为第四代编程语言,程序简洁、可读性很强,而且调试十分容易。它是 MATLAB 重要组成部分。本次实验的目的就是要使大家对MATLAB 的工作模式有一个大致的了解,并掌握如何创建 M 文件,包括命令文件和函数文件。熟练地掌握 MATLAB 的程序设计流程和程序设计的基本结构,并能初步设计一些简单的能解决实际问题的程序。 二实验要求MATLAB 的程序设计与其他

2、计算机语言非常类似,但它更加简洁明了。通过本次实验,要求了解 MATLAB 的工作模式,熟练掌握 MATLAB 的 M 文件的创建与修改,会使用函数句柄调用函数,熟练运用顺序结构、循环结构和分支结构进行计算机编程。掌握 M 文件的构成规则,充分了解命令 M 文件和函数 M 文件的异同。会控制 MATLAB 的程序流,熟悉应用程序设计的基本步骤。能对文件进行简单操作,会调试和优化所设计的程序。了解应用程序接口的设计。 三实验内容M 文件与 MATLAB 程序设计 一、M 文件介绍当用户要运行的指令较多时 , 直接从键盘上逐行输入指令比较麻烦 , 而命令文件可以较好地解决这一问题。用户可以将一组相

3、关指令编辑在同一个 ASCI I 码命令文件中 , 即从指令窗口工具栏的新建按钮或选择菜单File:New:M-File 进入 MATLAB 的程序编辑器窗口,以编写自己的文件,运行时 M 文件时,只需输入文件名字 , MATLAB 就会自动按顺序执行文件中的命令。M 文件有两种运行方式 : 一是在命令窗口直接写文件名 , 按 Enter 键 ; 二是在编辑窗口打开菜单 Tools , 再单击 Run 。 M 文件保存的路径一定要在搜索路径上 , 否则 M 文件不能运行。文件有二类:命令式文件和函数式文件。1.命令式文件 logotu =43life is too short to spend

4、 weiting do loops.2.函数式文件fibfun(17) ans 1597命令式文件和函数文件比较 二 流程控制流程控制语句可改变程序执行的流程,MATLAB 的流程控制语句有三类:。while,for, end 构成循环语句;。if, else, end 构成选择语句;。switch, case, otherwise, end 构成分支语句;这些语句的使用,给 MATLAB 程序设计带来了极大的方便,也给设计带来了灵活性。命令式文件函数文件 定义行无需定义行必须有定义行 输入/输出变量无有 数据传送直接访问基本工作空间中的所 有变量通过输入变量获得输入数 据; 通过输出变量提交

5、结果 编程方法直接选取 MATLAB 中执行的语句精心设计完成指定功能 用途重复操作MATLAB 功能扩展1.循环语句(1)for 循环例如:生成范德蒙矩阵 syms t t=-1 0 1 3 5t =-1 0 1 3 5 for j=1:nfor T=1:na(T,j)=t(T)(n-j)endenda =1 -1 1 -1 10 0 0 0 11 1 1 1 181 27 9 3 1625 125 25 5 1(2)while 循环例如:计算矩阵的幂 expm(a)ans =162.7871 224.6754224.6754 312.5707While 循环法: a=2 3;3 4 e=z

6、eros(size(a) f=eye(size(a) k=1 while norm(e+f-e,1)0e=e+ff=a*f/kk=k+1ende =162.7871 224.6754224.6754 312.57072.选择语句例如:B 样条函数的判断函数 pdbsline (-1)ans =03.分支语句例如: 请输入成绩:34不及格 请输入成绩:90优秀请输入成绩:70良好请输入成绩:80优秀请输入成绩:60 4.程序调试 在 Debugger 窗口调试程序,用 open 打开 M 文件并进入 Debugger 窗口。 (1)设置断点 分为标准断点、条件断点和错误断点。 让断点不起作用或反

7、之:Debug-Enable/Disable Break point。 有效断点(红色)和无效断点(灰色):后者并非是不起作用的断点,程 序运行到此照样停止,只是修改后没有保存而修改变成无效。 清除断点:Debug-Set/Clear Break point 在命令窗口显示断点状况:db status 或 db status m file。 设置条件断点:Debug-Set/Modify Conditional Break point。 断点的弹出菜单:鼠标右键点击断点。 命令窗口设置条件断点:db stop in m file at line no if expression。 错误断点:D

8、ebug-Stop if Errors/Warnings。 命令窗口设置错误断点:db stop if error 或 db stop if error identifier 或 db stop if warning (2)彩色语法突出显示(Syntax highlighting),改正语法错误 可使用原本的颜色,也可自定义。 (3)错误信息 语法错误,带有下划线,可作为超链接。例如:判断 2000 年至 2010 年间的闰年年份 (1)创建一个 leap year.m 的 M 函数文件,并输入如下函数代码程序。(2)运行以上 M 程序,此时 MATLAB 命令窗口会给出如下错误提示: ? E

9、rror: File: leap year.m Line: 10 Column: 6 The expression to the left of the equals sign is not a valid target for an assignment. 由错误提示可知,在程序的第 10 行存在语法错误,检测可知 if 选择判断语 句中,将“=”写成了“=”。因此将“=”改成“=”,同时也更改第 13、16、19 行中的“=”为“=”。 (3)程序修改并保存完成后,可直接运行修正后的程序,程序运行结果为: 2001 2002 2003 2005 2006 2007 2009 2010 显然

10、,2001 年至 2010 年间不可能每年都是闰年,由此判断程序存在运行错 误。(4)分析原因。可能由于在处理年号是否是 100 的倍数时,变量 sign 存在 逻辑错误。 (5)断点设置。运行至第一个断点单步调试,可以通过按“F10”键或单击工具栏中相应的单步执行图形按钮, 此时程序将一步一步向下执行。修改后的程序(6)运行程序。 2000 2004 2008 分析发现,结果正确,此时程序调试结束。4 MATLAB 应用程序接口设计MATLAB 与外部的数据和程序交互是很有意义的。通过与其他编程的交互,可以扩充 MATLBA 强大的数值计算和图形显示功能,并且避开其执行效率较低的缺点。具体地

11、说,MATLAB 接口包含以下功能:1. MATLAB CompilerMATLAB Compiler 是 MATLAB 自带的编译工具,可以将其 M 文件转换成 C/C+等不同类型的源代码文件,并在此基础上生成必要的 MEX 文件(.dll文件),再通过 Visual C+编译器生成可独立执行的应用程序(.exe 文件),这种方式可以直接调用其中的库函数,生成并发布不依赖 MATLAB 的可执行文件,从而大大提高代码的执行效率。尤其是可独立执行的应用程序文件,不需要MATLAB 环境的支持,大大扩展了程序的应用范围。一方面,编译器对 M 文件编译后,运行速度有大幅提高,另一方面又隐藏了程序算

12、法,也相应提高了程序的保密性。当然,并不是所有的 M 文件 MATLAB 编译器都能够将它们编译为可执行程序,在某些情况下,编译器的作用是有限的。为此,MATLAB 提供了运行时服务器(Run time Server),利用它可以很好地弥补编译器的不足。2. MATLAB 引擎MATLAB 引擎是用于和外部程序结合使用的一组函数和程序库,用户在自己的 C 语言编写的应用程序中用它们来调用 MATLAB。这时将 MATLAB 作为一个计算引擎,在后台运行。MATLAB 引擎函数是采用 C 语言编写的,在UNIX 系统中通过通道来和一个独立的 MATLAB 进程通信,而在 Windows 操作系统

13、中则通过组件对象模型(COM)接口来通信,从而在用户程序与 MATLAB进程之间起到了桥梁作用。MATLAB 提供了一个函数库,用它们启动和终止MATLAB 进程、传输数据并传递要在 MATLAB 中处理的命令。总之,MATLAB 引擎功能非常强大,而且使用方便,因此经常在应用程序中使用。3. MAT 数据文件共享数据MAT 文件是 MATLAB 自己存储数据的标准格式,为了使 C/C+等程序设计语言能对 MAT 文件进行操作,MATLAB 提供了一些专门操作 MAT 数据文件的 API 函数,因此,MATLAB 可以与其他语言平台通过 MAT 文件实现数据共享,从而有助于减轻其他平台的计算负

14、担。4. Excel LinkExcel Link 将 MATLAB 的数学和图形处理能力与 Microsoft Excel 的电子表格软件能力结合在一起,使 MATLAB 成为 Excel 的数学计算引擎,使得Excel 在具有高质量的图形功能的同时,还可以明显降低复杂应用程序的执行时间。Excel Link 允许在 Excel 工作空间和 MATLAB 工作区之间进行数据交换,在两个功能强大的数学处理、分析与表示平台之间建立连接。 四、实验总结通过本次实验,我了解了 MATLAB 的工作模式和 M 文件的构成规则,了解了命令 M 文件和函数 M 文件的异同。会 MATLAB 的 M 文件的创建与修改,会使用函数句柄调用函数,会运用顺序结构、循环结构和分支结构进行计算机编程。会控制 MATLAB 的程序流,熟悉了应用程序设计的基本步骤。能对文件进行简单操作,会调试和优化所设计的程序。对应用程序接口的设计也有所了解。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号