8.3 MATLAB控制流
8.3.1 for循环结构
【 * 例 8.3.1 -1 】一个简单的 for 循环示例。
for i=1:10; %i 依次取 1,2, … 10,.
x(i)=i; % 对每个 i 值,重复执行由该指令构成的循环体,
end;
x % 要求显示运行后数组 x 的值。
x =
1 2 3 4 5 6 7 8 9 10
8.3.2 while循环结构
【 * 例 8.3.2 -1 】 Fibonacci 数组的元素满足 Fibonacci 规则:
,
;且
。现要求该数组中第一个大于 10000 的元素。
a(1)=1;a(2)=1;i=2;
while a(i)<=10000
a(i+1)=a(i-1)+a(i); % 当现有的元素仍小于 10000 时,求解下一个元素。
i=i+1;
end;
i,a(i),
i =
21
ans =
10946
8.3.3 if-else-end分支结构
【 * 例 8.3.3 -1 】一个简单的分支结构。
cost=10;number=12;
if number>8
sums=number*0.95*cost;
end,sums
sums =
114.0000
【 * 例 8.3.3 -2 】用 for 循环指令来寻求 Fibonacc 数组中第一个大于 10000 的元素。
n=100;a=ones(1,n);
for i=3:n
a(i)=a(i-1)+a(i-2);
if a(i)>=10000
a(i),
break; % 跳出所在的一级循环。
end;
end,i
ans =
10946
i =
21
8.3.4 switch-case结构
【 * 例 8.3.4 -1 】学生的成绩管理,用来演示 switch 结构的应用。
clear;
% 划分区域: 满分 (100) , 优秀 (90-99) , 良好 (80-89) , 及格 (60-79) , 不及格 (<60) 。
for i=1:10;a{i}=89+i;b{i}=79+i;c{i}=69+i;d{i}=59+i;end;c=[d,c];
Name={' Jack','Marry','Peter',' Rose',' Tom'}; % 元胞数组
Mark={72,83,56,94,100};Rank=cell(1,5);
% 创建一个含 5 个元素的构架数组 S ,它有三个域。
S=struct('Name',Name,'Marks',Mark,'Rank',Rank);
% 根据学生的分数,求出相应的等级。
for i=1:5
switch S(i).Marks
case 100 % 得分为 100 时
S(i).Rank=' 满分 '; % 列为 ' 满分 ' 等级
case a % 得分在 90 和 99 之间
S(i).Rank=' 优秀 '; % 列为 ' 优秀 ' 等级
case b % 得分在 80 和 89 之间
S(i).Rank=' 良好 '; % 列为 ' 良好 ' 等级
case c % 得分在 60 和 79 之间
S(i).Rank=' 及格 '; % 列为 ' 及格 ' 等级
otherwise % 得分低于 60 。
S(i).Rank=' 不及格 '; % 列为 ' 不及格 ' 等级
end
end
% 将学生姓名,得分,登记等信息打印出来。
disp([' 学生姓名 ',' 得分 ',' 等级 ']);disp(' ')
for i=1:5;
disp([S(i).Name,blanks(6),num2str(S(i).Marks),blanks(6),S(i).Rank]);
end;
学生姓名 得分 等级
Jack 72 及格
Marry 83 良好
Peter 56 不及格
Rose 94 优秀
Tom 100 满分
8.3.5 try-catch结构
【 * 例 8.3.5 -1 】 try-catch 结构应用实例。
clear,N=4;A=magic(3); % 设置 3 行 3 列矩阵 A 。
try
A_N=A(N,:), % 取 A 的第 N 行元素
catch
A_end=A(end,:), % 如果取 A(N,:) 出错,则改取 A 的最后一行。
end
lasterr % 显示出错原因
A_end =
4 9 2
ans =
Index exceeds matrix dimensions.

激光扫描服务技术具有很高的经济意...

(资料图片)“中国载人航天飞行任务试验用车”、“航天员凯旋礼宾车”、“神舟七号飞...

针对级进模排样的特点以及人工智能技术在工程领域应用的研究,提出了适用于级进模排样...

目前,北京现代汽车有限公司发动机厂拥有两个工厂,分别于2004年和2007年投产,年生产...

9月8日,石家庄兆通金刚石工贸有限公司销售经理王金龙先生在向笔者介绍金刚石制品行业...