程序的控制结构有3种:顺序结构、选择结构和循环结构.任何复杂的程序都可以由这3种基本结构构成.
一、顺序结构
顺序结构是指按照程序中语句的排列顺序依次执行,直到程序最后一个语句.这是最简单的一种程序结构.一般涉及数据的输入、数据的计算或处理、数据的输出等内容.
1.数据输入
从键盘输入数据,则可以使用input函数来进行,格式为:
A=input(提示信息,选项)
其中,提示信息为一个字符串,用于提示用户输入什么样的数据.例如,从键盘输入A矩阵,可以采用下面的命令来完成:
A=input(输入A矩阵)
执行该语句时,首先在屏幕上显示提示信息“输入A矩阵:”,然后等待用户从键盘按MATLAB规定的格式输入A矩阵的值.
如果在input函数调用时采用‘s’选项,则允许用户输入一个字符串.例如,想输入一个人的姓名,可采用命令:
xm=input(Whats your name?,s);
2.数据的输出
MATLAB提供的命令窗口输出函数主要有disp函数,其调用格式为:
disp(输出项)
其中,输出项既可以为字符串,也可以为矩阵.例如:
输出为:
又如:
输出为:
注意:和前面介绍的矩阵显示方式不同,用disp函数显示矩阵时,将不显示矩阵的名字,并且输出格式更紧凑,不留任何没有意义的空行.
3.程序的暂停
当程序运行时,为了查看程序的中间结果或者观看输出的图形,有时需要暂停程序的执行.这时可以使用pause函数,其调用格式为:
pause(延迟秒数)
如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行.若要强行中止程序的运行,可按Ctrl+C组合键.
二、选择结构
选择结构是根据给定的条件成立或不成立,分别执行不同的语句.MATLAB用于实现选择结构的语句有if语句、switch语句和try语句.
1.if语句
在MATLAB中,if语句有3种格式:
(1)单分支if语句
语句格式:
if条件
语句组
end
当条件成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成立,则直接执行if语句的后继语句.例如,当x是整数矩阵时,输出x的值,语句如下:
(2)双分支if语句
语句格式:
if条件
语句组1
else
语句组2
end
当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行if语句的后继语句.
(3)多分支if语句
语句格式:
if条件1
语句组1
elseif条件2
语句组2
…
elseif条件m
语句组m
else
语句组n
end
2.switch语句(www.xing528.com)
switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式为:
当表达式的值等于表达式1的值时,执行语句组1,当表达式的值等于表达式2的值时,执行语句组2,…,当表达式的值等于表达式m的值时,执行语句组m,当表达式的值不等于case所列的表达式的值时,执行语句组n.当任意一个分支的语句执行完后,直接执行switch语句的下一个语句.
switch子句后面的表达式应为一个标量或一个字符串,case子句后面的表达式不仅可以为一个标量或一个字符串,还可以为一个单元矩阵.如果case子句后面的表达式为一个单元矩阵,则表达式的值等于该单元矩阵中的某个元素时,执行相应的语句组.
3.try语句
try语句是一种试探性执行语句,其语句格式为:
try
语句组1
catch
语句组2
end
try语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2.
三、循环结构
循环是指按照给定的条件,重复执行指定的语句,这是十分重要的一种程序结构.MATLAB提供了两种实现循环结构的语句:for语句和while语句.
1.for语句
for语句的格式为:
for循环变量=表达式1:表达式2:表达式3
循环体语句
end
其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值.步长为1时,表达式2可以省略.
执行for语句时,首先计算3个表达式的值,再将表达式1的值赋给循环变量,如果此时循环变量的值介于表达式1和表达式3的值之间,则执行循环体语句,否则结束循环的执行.执行完一次循环之后,循环变量自增一个表达式2的值,然后再判断循环变量的值是否介于表达式1和表达式3之间,如果是,仍然执行循环体,直至条件不满足.这时将结束for语句的执行,而继续执行for语句后面的语句.
2.while语句
while语句的一般格式为:
while条件
循环体语句
end
其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立,则跳出循环.
3.break语句和continue语句
与循环结构相关的语句还有break语句和continue语句.它们一般与if语句配合使用.
break语句用于终止循环的执行.当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语句.
continue语句控制跳过循环体中的某些语句.当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环.
第2章练习题
1.先建立自己的工作目录,再将自己的工作目录设置到MATLAB搜索路径下.用help命令能查询到自己的工作目录吗?
2.李明同学设计了一个程序文件myprogram.m,并将其保存到f:\ppp中,但在命令窗口中输入文件名
后,MATLAB系统提示:
试分析产生错误的原因并给出解决办法.
3.利用MATLAB的帮助功能分别查询inv、plot、max、round等函数的功能及用法.
4.建立矩阵A,然后找出在[10,20]区间的元素的位置.
5.设A和B是两个同维同大小的矩阵,问
(1)A∗B和A.∗B的值是否相等?
(2)A./B和B.\A的值是否相等?
(3)A/B和B.\A的值是否相等?
(4)A/B和B.\A所代表的数学含义是什么?
6.已知:
取出A的前3行构成矩阵B,前两列构成矩阵C,右下角3×2子矩阵构成矩阵D,B与C的乘积构成矩阵E.
7.分别用if语句和switch语句实现以下计算,其中a、b、c的值从键盘输入.
8.输入20个两位随机整数,输出其中小于平均值的偶数.
9.输入20个数,求其中最大数和最小数.要求分别用循环结构和调用MATLAB的max函数、min函数来实现.
10.已知:
s=1+2+22+23+…+263
分别用循环结构和调用MATLAB的sum函数求s的值.
11.编写一个函数文件,求小于任意自然数n的Fibnacci数列各项.Fibnacci数列定义如下:
12.写出下列程序的输出结果.
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。