MATLAB程序流程控制
前言
程序的三种基本结构
-
顺序结构
-
选择结构
-
循环结构
脚本文件和函数文件 -
脚本文件是可以在命令行窗口直接执行的文件,也叫命令文件。
-
函数文件是定义一个函数,不能直接执行,而必须以函数调用的方式来调用它。
文件的建立
-
用命令按钮创建文件。
-
用edit命令创建文件。
edit test
分别建立脚本文件和函数文件,求两个矩阵的乘积。
- 建立脚本文件f1.m。
A = [1,2,3;4,5,6];
B = [1,2;3,4;5,6];
C = A*B - 在命令行窗口运行脚本文件。
f1
C =
22 28
49 64
- 建立函数文件f2.m。
function C = f2(A,B)
C = A*B - 在命令行窗口调用函数文件。
A = [1,2,3;4,5,6];
B = [1,2;3,4;5,6];
C = f2(A,B)
C =
22 28
49 64
3.1 顺序结构程序
(1)数据的输入
A = input(提示信息,选项);
A = input(‘请输入变量A的值:’);
请输入变量A的值:100
(2)数据的输出
disp(输出项);
s = ‘Hello,World’;
disp(s)
Hello,Worlda = [1,2,3;4,5,6];
disp(a)
1 2 3
4 5 6
(3)程序的暂停
pause(延迟秒数)
若要强行中止程序的运行可以使用Ctrl+C命令。
3.2 用if 语句实现选择结构
选择结构又称分支结构,是根据给定条件是否成立来决定程序的执行流程。
单分支if语句
if 条件 (关系运算或逻辑运算)
语句组 (可以是一条语句,也可以是多条语句)
end
- 当条件结果为标量时,非零表示条件成立,零表示条件不成立。
- 当条件结果为矩阵时,如果矩阵非空且不包含零元素则条件成立,否则条件不成立。
双分支if语句
if 条件
语句组1
else
语句组2
end
例:输入一个整数,若为奇数则输出其平方根,否则输出其立方根。
x = input('请输入x的值:');
if rem(x,2)==1 %等价可写为rem(x,2)
y = sqrt(x);
else
y = x^(1/3);%等价可写为power(x,1/3)
end
y
多分支if语句
*语句格式:
if 条件1
语句组1
elseif 条件2
语句组2
……
elseif 条件m
语句组m
else
语句组n
end *
例:输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应数的平方,若为其他字符则原样输出。
c = input('请输入一个字符:','s');
if c>='A'&&c<='Z'
disp(lower(c))
elseif c>='a'&&c<='z'
disp(upper(c))
elseif c>='0'&&c<='9'
disp(str2double(c)^2)
else
disp(c)
end
3.3 用switch语句实现选择结构
switch语句的格式
*switch 表达式
case 结果表1
语句1
case 结果表2
语句2
…
case 结果表m
语句m
otherwise
语句组n
end *
例:输入一个英文单词,判断它是否以元音字母开头。
c = input('请输入一个单词:','s');
switch(1)
case{'A','E','I','O','U','a','e','i','o','u'}
disp([c,'以元音字母开头']);
otherwise
disp(['c','以辅音字母开头'])
end
3.4 用for语句实现循环结构
for语句
格式:
for 循环变量=表达式1:表达式2:表达式3
循环体语句
end
说明:
for语句针对向量的每一个元素执行一次循环体。
退出循环之后,循环变量的值就是向量中最后的元素值。
当向量为空时,循环体一次也不执行。
例:计算圆周率 π \pi π
π 4 = 1 − 1 3 + 1 5 − 1 7 + . . . + ( − 1 ) n + 1 1 2 n − 1 \frac{\pi}{4}=1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+...+(-1)^{n+1}\frac{1}{2n-1}