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
上一篇: Matlab API应用程序接口
下一篇:Matlab 调试器的使用