MATLAB是一种解释性程序设计语言,对程序边解释边执行,其命令有两种执行方式:一种是交互式的命令执行方式,另一种是程序执行方式。程序执行方式是将有关命令编成程序存储在一个文件中,当运行该程序后,MATLAB会自动依次执行该文件中的命令,直至全部命令执行完毕。MATLAB编程主要采用程序执行方式。
M文件是一个脚本文件,文件名必须以“.m”为扩展名,文件名不能为汉字或数字开头。M文件可以由任意的文本编辑软件来编辑。M文件根据调用方式的不同分为两种类型:脚本(script)文件和函数(function)文件。脚本文件是MATLAB命令或函数的组合,没有输入/输出参数,脚本文件可以访问MATLAB工作空间中的所有数据,在运行过程中产生的变量均是全局变量,这些变量一旦生成就一直保存在内存空间中,另外,脚本文件可以直接运行,在MATLAB命令行窗口输入脚本文件的名字,就会顺序执行脚本文件中的命令,如例1-4所示。
【例1-4】 执行脚本文件myvoice.m中的命令。
函数文件不能直接运行,需要以函数调用的形式来调用它,函数文件可以有输入参数,也可以返回输出参数,它的第一条可执行语句是以function引导的定义语句。在函数文件中的变量都是局部变量,函数文件一旦执行完毕,这些变量就自动消失。
函数文件第一行是函数定义行,其格式为:
需要注意的是,有无函数定义行是区分命令文件与函数文件的重要标志,函数体包含所有函数程序代码,是函数的主体部分,函数文件保存的文件名应与用户定义的函数名一致,在命令行窗口中以固定格式调用函数。
例如:函数f(x,y,z)=X 2 y+xZ 2 -2yz,请计算f(1,2,3)。在编辑器中编辑程序:
保存为test(文件名必须与函数名一致),然后在命令窗口中输入:
MATLAB允许在函数调用时同时返回多个变量。而一个函数又可以由多种格式进行调用,例如bode()函数可以由下面的格式调用。
其中bode()函数用来求取或绘制系统的Bode图,而系统在这里由传递函数分子num和分母den表示,还可以用下面的格式调用此函数。
其中(A,B,C,D)为系统的状态方程模型。尽管两种调用格式是完全不同的,MATLAB函数还是会自动识别到底是采用哪种格式调用该函数,从而得出正确的结论。
另外,MATLAB 2016a以后的版本提供了实时脚本(live script)功能,其实时编辑器提供一种新的方式来创建、编辑和运行MATLAB程序,实时脚本文件的扩展名为“.mlx”,除了基本的程序代码,还可以包含格式化文本、方程式、超链接和图像等,而且运行时能实时显示输出结果,增强了程序的描述效果。
与其他高级语言一样,MATLAB由顺序、条件和循环这三种基本控制结构组成,任何复杂的程序都可以由这三种基本结构构成。
1.顺序结构
顺序结构是指程序按照顺序依次执行各条指令,直到程序的最后一条语句为止,不需要任何特殊的流程控制。程序一般包括数据输入、数据处理和数据输出三个步骤。例如:
2.条件结构
条件结构又称为选择结构或分支结构,程序根据给定的条件是否成立来执行不同的操作。MATLAB中有if-else-end、switch-case-otherwise和try-catch-end三种条件结构程序语句。
(1)if-else-end语句
当有真和假两种条件时,if-else-end语句的结构为:
当需要多种条件执行不同的操作时,if-else-end语句的结构为:
【例1-5】 判断输入数是否为正。
(2)switch-case-otherwise语句
switch-case-otherwise语句的格式为:
switch语句和if语句类似。switch语句根据变量或表达式的取值不同分别执行不同的命令。
【例1-6】 根据菜单选择显示不同的函数。
(3)try-catch-end语句
MATLAB还提供了一种试探性执行语句try-catch-end,其格式为:
try-catch-end语句结构首先试探性地执行语句1,如果在此语句执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并终止这段语句的执行,转而执行语句段2中的语句。如果不出错,则转去执行end后面的语句。
3.循环结构
循环执行是计算机运行的重要特点,MATLAB提供了两种实现循环结构的语句:for循环语句和while循环语句。
(1)for循环语句
for循环语句调用格式为:
执行时,先将初始值赋值给循环变量,执行循环体语句,执行完一次循环后,循环变量增加一个步长的值,然后判断循环变量的值是否处于初始值和终止值之间,如果满足条件则继续执行循环体语句,如果不满足条件则跳出循环。
【例1-7】 已知 ,当 n =100时,求 x 的值。程序如下:
程序运行结果如下:
(2)while循环语句
while循环语句调用格式为:
while循环语句是通过判断循环条件是否满足来决定是否继续循环的一种循环控制语句,也称为条件循环语句。它的特点是先判断循环条件,条件满足时执行循环。其执行过程为,如果条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。
【例1-8】 利用while循环语句实现对 的求解。
disp(sum)运行结果如下: