MATLAB7.0使用详解-第8章 M-文件和MATLAB

上传人:豆浆 文档编号:26077459 上传时间:2017-12-22 格式:PPT 页数:41 大小:222.50KB
返回 下载 相关 举报
MATLAB7.0使用详解-第8章  M-文件和MATLAB_第1页
第1页 / 共41页
MATLAB7.0使用详解-第8章  M-文件和MATLAB_第2页
第2页 / 共41页
MATLAB7.0使用详解-第8章  M-文件和MATLAB_第3页
第3页 / 共41页
MATLAB7.0使用详解-第8章  M-文件和MATLAB_第4页
第4页 / 共41页
MATLAB7.0使用详解-第8章  M-文件和MATLAB_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《MATLAB7.0使用详解-第8章 M-文件和MATLAB》由会员分享,可在线阅读,更多相关《MATLAB7.0使用详解-第8章 M-文件和MATLAB(41页珍藏版)》请在金锄头文库上搜索。

1、第8章 M-文件和MATLAB 7.0程序设计,本书在前面的章节,主要介绍了MATLAB 7.0强大的数值计算和图形可视化方面的功能。用户主要是利用命令窗口(Command Window)和交互式对话框(如图形窗口),把想法和意图传递给机器,让系统执行操作。以上的操作理解和操作极为方便,但是基本只能解决代码行数少的简单问题,对于大型问题,使用不便。其实,MATLAB除了以上的功能,还可以提供用户一种特有的交互式的程序语言,即MATLAB语言,使用户可以自行编写扩展名为.m的文件,方便灵活地整合大量单行程序代码,从而解决大规模的工程问题。MATLAB语言和广大用户常见的C和FORTRAN语言从本

2、质上来说,有很多相似之处,另外MATLAB就是利用C语言作为开发内核,所以,如果熟悉C语言编程的读者,阅读本章将会有驾轻就熟之感。从广义上说,在MATLAB命令窗口输入单行代码和利用其编程功能设计.m文件的程序都属于MATLAB的程序设计的不同方式,本章主要着眼于后者,详细向读者介绍如下内容:M-文件的特点和类型、MATLAB程序结构和设计控制指令、程序的分析、调试和改良以及MATLAB函数的扩展知识。,8.1 M-文件,在前面的章节中,本书曾经提到过M-文件,概括来说,M-文件就是一系列相关代码组成的一个扩展名为.m的文件,用户可以在MATLAB自带的M-文件编辑窗口或者普通文本编辑器中编写

3、代码,然后以filename的文件名+.m的后缀名保存在MATLAB的工作空间,以后在MATLAB命令窗口直接调用文件名filename,就可以执行文件中一系列代码所综合表示的操作。虽然M-文件是简单的ASCII型的文本文件,但是其语法却与高级语言一样,是一种程序化的变成语言,所以,M-文件具有简单、交互性较好和易于调试的特点。MATLAB之所以适用于多门学科,其重要原因是其具有类型齐全、功能完善的各种“工具箱(Toolbox)”,这些工具箱也都是一个个M-文件,广大工程师和学者不断在工具箱内添加新的M-文件,使MATLAB的功能愈加增强。本节主要介绍M-文件的分类、结构组成以及如何运用M-文

4、件进行程序设计等知识。,8.1.1 脚本文件(MATLAB scripts),M-文件可以分为两类:脚本文件(MATLAB scripts)和函数文件(MATLAB functions)。两种M-文件虽然都是以.m为文件扩展名,但是有一定的区别,之后的章节将具体介绍其不同之处,本节首先介绍脚本文件的相关知识。脚本文件可以理解为较为简单的M-文件,因为其没有输入和输出变量。下面用一个简单的例子说明如何编写和运行脚本文件。,8.1.2 函数文件(MATLAB functions),上一小节介绍了M-文件的一种形式:脚本文件。本节将继续介绍M-文件的另一种形式:函数文件(MATLAB functio

5、ns),读者需要特别注意对于这两种文件的比较和区别。相对于脚本文件来说,函数文件稍显复杂。表面上看来,函数文件只是在同功能的脚本文件的基础上,在文件中代码开始处,多添加了一行函数定义行,如上一小节例1.1中脚本文件对应的函数文件如图所示。,8.1.3 M-文件的组成结构,上两小节从M-文件分类的角度,分别介绍了脚本和函数文件的特点和编写调用方法。函数和脚本两者本是同宗,从结构外观上看,函数文件也只比脚本文件多了一行函数声明行代码,所以本节在介绍M-文件基本结构时,把两者结合在一起进行介绍,这样不但思路统一,而且可以相互比较,让读者在理解的时候加深印象。首先,仍然举一个简单的M-文件的例子,本例

6、是一个求和函数文件“sum”,具体结构如图所示。,8.1.4 P-码文件,所有M-文件首次被MATLAB调用时,系统会首先对文件进行语法分析,并把生成的相关内部伪代码(Psedocode)文件存放于内存中,P-码是伪代码(Psedocode)的缩写。当系统再次对该-文件进行调用时,将直接调用存放于内存中对应的P-码文件,而不是再次对原M-文件进行重复的分析。P-码文件和对应的M-文件具有同样的文件名,但其却是以“.p”作为扩展名,对于用户输入的的文件名,系统优先调用同名的P-码文件,而且对于规模较大的文件,用户可以明显地感觉到,P-码文件的执行速度比M-文件高。读者需要注意的是,虽然P-码文件

7、可以随着M-文件的被调用而产生,但其不仅仅只能作为M-文件的“附属品”,也就是说用户可以预先创建P-码文件并对内存中的P-码文件进行操作。,8.2 MATLAB的程序结构及流控制语句,MATLAB语言作为一种高级编程语言,提供给了用户一些判断程序结构并控制程序运行的流程控制语句,方便用户对于程序的编写和执行顺序的控制。一般来说MATLAN的程序按照大类,可以分为3种,即顺序结构、循环结构和分支结构。本节将分别介绍这3种结构和对应的流控制语句。,8.2.1 顺序结构,顺序结构是MATLAB程序结构中最基本的结构,不需要任何流程控制语句,完全是依照自上而下的顺序进行代码的执行,用户熟知的批处理文件

8、就是典型的顺序结构。一般的程序中,都要包含顺序结构,读者要把此结构的程序作为程序的基础来熟练掌握。【例3】使用MATLAB顺序结构,编辑一个计算两数的积商的程序。用户首先新建一个M-文件,在M-文件编辑器中输入如下代码:% 定义变量a,并赋值a=10;% 定义变量b,并赋值b=100;% 输出两数乘积fprintf(product=%fn,a*b);% 输出两数的商fprintf(quotient=%fn,b/a);,8.2.2 for循环结构,循环结构一般用于规律性较强的运算,程序中被循环执行的语句称为循环体。MATLAB中的循环结构控制语句有for和while两种,都属于“当型循环控制语句

9、”,即当条件m为“真”时,反复执行a语句,直到m为假为止,才停止循环,如图所示。,8.2.3 while循环结构,上一小节介绍了常用循环结构的一种for循环结构,本节将对照for语句,讲解while循环语句的结构和使用方法。While语句的格式如下:while expression statements;end其中,expression代表条件表达式,而statements表示执行的循环体,一般情况下,expression提供的是一个标量,有时也可以是数组。以expression是标量为例,只要其为“真(True)”,那么statements循环体就会一直循环下去,直到expression变为

10、“假(False)”为止;而如果expression是一个数组,那么statements循环与否的条件则分别是数组所有元素均为“真”和不全为“真”。,8.2.4 if条件分支结构,与循环结构一样,分支结构也是程序设计中的常见结构之一。当程序需要表达选择意向的时候,用户往往需要使用条件分支控制语句。条件分支结构的执行顺序一般是,条件P为“真”时,执行语句A,否则,执行语句B,在执行完成任意分支后,输出结果。MATLAB中常见的条件分支控制语句有if和switch语句,本节将首先介绍if分支语句。if语句是MATLAB程序设计中的重要语句之一,其调用格式有3种,分别是:单分支、双分支和多分支,下面

11、分别介绍这3种分支语句的格式和用法。,8.2.5 switch条件分支结构,MATLAB中还有一种常用的多分支结构语句,即switch语句。与if多分支语句相比较而言,switch语句主要用于条件多且单一的情况,比如学生成绩分类、人口年龄层次结构统计等,这些问题如果用if语句来处理,虽然也可以得到结果,但是由于分支较多,嵌套的if语句层数太多,程序烦琐复杂,不便于理解,可读性差。switch条件分支语句的调用格式为:switch expression case value1 statements1 case value2 statements2 case value3 statements3.

12、otherwise statementsend,8.3 MATLAB交互式程序控制语句,上一节主要讲解了MATLAB程序的3种一般结构和对应的常用控制语句,在使用控制语句编写程序来解决实际问题时,用户不仅需要确定程序的结构对实现问题的表述,还常常会遇到程序提前终止循环、跳出子程序、显示出错信息、输入用户数据、暂停程序执行以及显示执行命令等情况。针对此类问题,MATLAB特别提供了一系列交互式控制语句,来实现上述的功能,本节将结合具体的示例,介绍以下的指令:continue、break、return、try-catch、error、warning、input、keyboard、pauseecho

13、等。,8.3.1 continue结束循环语句,continue语句的功能是跳过程序中未执行的循环语句来结束循环。其调用格式十分简单,即直接输入continue,代码如下。continuecontinue语句一般通过与if条件语句结合使用于循环结构中,下面举例说明其用法。,8.3.2 break结束循环语句,在MATLAB程序设计中,break语句与continue语句的功能类似,作用是终止本次循环,跳出最内层循环中所有剩下的语句,即根据条件而不必等到循环结束,继续下一次循环。break语句常与if语句配合使用来强制结束循环,下面举例说明其用法。,8.3.3 return终止操作语句,上一小节

14、介绍的break语句一般只用于循环体内部,如果用户需要在循环语句之外结束操作,则可以使用return语句。return语句的用法比continue和break语句都要灵活,一般用在函数的末尾,MATLAB调用函数正在运行时,return语句可以强制程序结束,或者在满足某条件时强制退出此函数的运行,并返回主调函数或者键盘。正常情况下,程序于end语句处结束,使用return语句可以提前结束程序,下面举例说明return语句的用法。,8.3.4 warning错误警告语句,在MATLAB程序设计中,有一类专门对警告或错误情况进行捕获和处理的语句,常用的包括warning、error和try-cat

15、ch语句等,本小节将介绍warning语句的功能和使用方法。在编写程序的时候,遇到错误时,需要给使用者必要的提示,warning语句是常见的警告提示语句,其调用格式如下。warning(message)其中,message表示显示的警告内容,出现警告时,程序继续进行。下面举例说明warning语句的用法。,8.3.5 error语句错误警告终止语句,error语句的功能与warning语句类似,同样是针对程序中错误代码的报错显示。error语句的常用调用格式和功能如下。error(message):其中,message为显示的出错信息,此语句终止程序的执行。errordlg(errorstri

16、ng,dlgname):显示出错信息的对话框,其中,errorstring为对话框内容,而dlgname为对话框的标题。下面借用上一小节的例子,说明error语句的用法。,8.3.6 try-catch纠错模块语句,读者理解了error语句的使用方法后,对于功能类似的try-catch语句的理解,就会感到十分轻松。try-catch语句允许用户对一个程序中的错误进行操作,用户可以使用此语句判断程序的某处代码是否确实有错误。try-catch语句的调用格式和功能如下。try % try模块 statement . statementcatch %catch模块 statement statementend,8.3.7 pause暂停语句,

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

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

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