第11章 MATLAB基本编程 在使用MATLAB的过程中,可以直接在命令行窗口输入程序,采用交互式的方式进行编程,边输入程序边运行。对于大型的复杂程序,在命令行窗口中直接输入程序会非常的麻烦。MATLAB和其它的高级语言一样,可以进行程序的设计,编写扩展名为.m的M文件,实现各种复杂的计算。本章将详细介绍MATLAB的编程,程序的流程控制,以及函数编程等。 11.1 MATLAB编程概述 MATLAB是一种解释性语言,本身不能完成任何事情,只是对用户的程序进行解释执行。MATLAB语言是采用C语言编写的,因此语法和C语言非常相似。对于熟悉C语言的用户,学习MATLAB编程会非常容易。MATLAB编写的程序文件有两种:脚本M文件和函数M文件。 11.1.1 M文件的创建 在MATLAB中,M文件有两种类型:函数(Functions)和脚本(Scripts),都是以.m作为文件的扩展名。M文件为普通的ASCII文本文件,可以采用文字编辑和处理软件来建立。脚本是一系列命令、语句的简单组合。 11.1.2 脚本M文件 脚本文件中的变量都为全局变量,程序运行后,这些变量保存在MATLAB的基本工作空间内,一般采用函数clear清除这些变量。为了避免因为变量名相同引起冲突,一般在脚本文件的开始,都采用函数clear all,清除所有基本空间中的变量。 11.1.3 函数M文件 函数M文件在执行的过程中,所产生的变量一般都是局部变量,存放在函数自身的函数工作空间中,不会和基本工作空间中的变量产生冲突。对用户来说,函数M文件就像一个黑匣子,只有输入和输出。采用函数M文件,非常易于实现程序的模块化,可以实现程序的分工合作、共同开发,适合大型程序开发。 在MATLAB的命令行窗口输入:edit std.m,利用MATLAB文本编辑器打开函数M文件,如图11.2所示。函数std( )用于求样本数据的标准差,程序非常简单,但是包含了函数M文件的全部内容。 11.1.4 函数的参数传递 在MATLAB中,函数的参数传递是值传递,将变量或常量的值传递给函数的形式参数指定的变量,函数的计算在函数空间中进行,计算结束后,函数空间的变量被清除,函数的返回值返回到MATLAB的基本工作空间中。 在MATLAB中,函数nargin的值为输入参数的个数,函数nargout的值为输出参数的个数。 11.2 流程控制 MATLAB编程的基本结构包括:顺序结构、分支结构和循环结构,此外还有一些其它的控制语句。本节首先介绍MATLAB中的变量,然后将详细介绍三种基本的程序结构,最后介绍了交互式输入。 11.2.1 变量 在MATLAB中,变量的类型包括:局部变量、全局变量和永久变量。MATLAB为每个变量分配一块内存空间。变量和工作空间紧密联系。 1.局部变量 2.全局变量 全局变量采用global进行声明,格式为:global 变量1 变量2。中间采用空格进行分割。 3.永久变量 永久变量只能在函数M文件中进行定义,格式为:persistent 变量1 变量2。中间采用空格进行分割。 11.2.2 顺序结构 顺序结构是最简单的程序结构,用户在编写好程序后,按照从上到下、从左到右的顺序执行程序中的语句。由于没有控制语句,结构比较单一,但是这种程序比较容易编写。 11.2.3 分支结构 分支结构需要进行判断,只有满足一定的条件才执行某些语句。在MATLAB中,分支结构有两类:if语句和switch语句。下面分别进行介绍。 1.if…end语句 2.if…else…end语句 3.if… elseif… else…end语句 4.switch…case…end语句 11.2.4 循环结构 循环结构能够重复执行某一段相同的语句。MATLAB中,提供了两种循环语句,分别是for循环和while循环。如果已知循环次数,通常用for循环语句;如果未知循环次数,但有循环条件,则用while循环语句。 1.for循环语句 2.while循环语句 3.break语句和continue语句 11.2.5 try…catch语句 在程序设计时,如果不能确定某段程序代码是否会出错,可以采用try…catch语句。在MATLAB中,使用try…catch语句能够捕获和处理错误,其调用格式为: try 程序代码1 catch 程序代码2 end 11.2.6 人机交互函数 在MATLAB中提供了一些人机交互的函数,用户可以从键盘输入数据或字符串,可以暂停程序的运行等。下面分别进行介绍。 1.函数input( ) 2.函数keyboard 3.函数pause 4.函数echo 5.函数return 11.3 函数类型 在MATLAB中,函数M文件可以分为:主函数、
您可能关注的文档
最近下载
- 上海大学2022-2023学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 中国教育行业人才流动与薪酬水平_2025年12月.docx
- 2024全国初中数学联赛初二卷 .pdf VIP
- 全国初中数学联合竞赛真题及答案(初二组)2015-年.pdf VIP
- AIAG-VDA-SPC手册-Yellow-Volume2026年2月第一版 中文.pdf VIP
- 美甲美睫投资回报2026年培训课件.pptx VIP
- 中国王氏家谱字辈大全.doc VIP
- 《Michael_Porter_Creating_Shared_Value》.pdf VIP
- 直播带货虚假宣传法律规制研究.pdf
- 新大洲本田MS01说明书用户手册.pdf
原创力文档

文档评论(0)