迎 第2章程序设计和M文件 2.3 Matlab的流程控制 2.4M文件 2.5文件I/0函数 你以大学 LIAOCHENG UNIVERSITY
1 第2章 程序设计和M文件 2.3 Matlab的流程控制 2.4 M文件 2.5 文件I/O函数
视 2.3 Matlab的流程控制 ■三种常用的结构: 顺序结构、分支结构和循环结构。 ■程序流程控制语句: 循环控制语句、分支控制语句、其他跳 转语句、错误控制语句。 2
2 2.3 Matlab的流程控制 三种常用的结构: 顺序结构、分支结构和循环结构。 程序流程控制语句: 循环控制语句、分支控制语句、其他跳 转语句、错误控制语句
迎 2.3.1循环语句 实现将某段程序重复执行。 ■1.for循环 通常循环变量 for index=expression 的控制表达式 statement1 为“:”操 statement2 循环体 作,如 i=1:10, j=1:2:10等。 end ■ 说明:index是循环变量;expression可以是向量也可以 是矩阵,循环执行的次数就是expression的列数,每次 循环中循环变量依次取expression的各列并执行循环 体,直到expression.所有列取完。 3
3 2.3.1 循环语句 实现将某段程序重复执行。 1. for循环 for index=expression statement1 statement2 循环体 …… end 说明:index是循环变量;expression可以是向量也可以 是矩阵,循环执行的次数就是expression的列数,每次 循环中循环变量依次取expression的各列并执行循环 体,直到expression所有列取完。 通常循环变量 的控制表达式 为“:”操 作,如 i=1:10, j=1:2:10等
迎 egl:i=1 forj=1:2:10 a(①)=j+2 >a=357911] i=i+1 end eg2:j=1 for i=[1 3 5 7] ◆a=35791 a(i)=i+2 j=j+1 end 4
4 eg1: i=1 for j=1:2:10 a(i)=j+2 i=i+1 end eg2: j=1 for i=[1 3 5 7] a(j)=i+2 j=j+1 end a=[3 5 7 9 11] a=[3 5 7 9]
花 eg3. fori=135;246 statementl statement2 end 该循环将按=[1;2,i=3;4,i=5;6执行3次。 5
5 eg3. for i=[1 3 5; 2 4 6] statement1 statement2 …… end 该循环将按i=[1;2],i=[3;4],i=[5;6]执行3次
迎 eg4.用for循环求阶乘 n fac=1 n fac=1; n fac= 2 n=5; n fac= 6 for i=1:n n fac= 24 n_fac=n fac*i n fac= 120 end eg5.用for循环求平方、平方根、立方根 for ii=1:10 Square(ii)=ii^2 Square_root(ii)=ii(1/2) cute_root(ii)=ii(1/3) end 6
6 eg4. 用for循环求阶乘 n_fac=1; n=5; for i=1:n n_fac=n_fac*i end eg5. 用for循环求平方、平方根、立方根 for ii=1:10 Square(ii)=ii^2 Square_root(ii)=ii^(1/2) cute_root(ii)=ii^(1/3) end n_fac = 1 n_fac = 2 n_fac = 6 n_fac = 24 n_fac = 120
迎 eg. 2.while循环 i=1 while i<10 while expression a(i)=i a=123456789] statementl i=i+l statement2 C=10 end c=i end eg:使用while循环计算f)=siny,x<5且每次x递增 In(x). x=0.1; f= while x<5 -4.0651e+002-1.5921e+003i f=sin(x) X= x=x+l0g(x) 5.5640+9.2717i end 7
7 2. while循环 while expression statement1 statement2 …… end eg: 使用while循环计算f(x)=sin(x) ,x<5且每次 x递增 ln(x) 。 x=0.1; while x<5 f=sin(x) x=x+log(x) end f = -4.0651e+002 -1.5921e+003i x = 5.5640 + 9.2717i eg. i=1 while i<10 a(i)=i i=i+1 end c=i a=[1 2 3 4 5 6 7 8 9] C=10
迎 2.3.2条件语句 条件语句的分支结构形式一般为: if control expr_1 statementl statement2 blockl elseif control expr_2 statementl statement2 block2 nn■。■■■n else statementl statement2 block3 end 8
8 statement1 statement2 block1 ………… elseif control_expr_2 statement1 statement2 block3 …………. end statement1 statement2 block2 ………… else 2.3.2 条件语句 if条件语句的分支结构形式一般为: if control_expr_1
② eg.对于方程,ax2+bx+c=0求其二次方根。 已知r= -b±Vb2-4ac 2a 则程序如下: if(b2-4*a*c)<0 msg(“此方程有两复数根”) elseif (b2-4*a*c)==0 msg(“此方程有两恒等的实数根) else msg(“此方程有两不等的实数根) end 9
9 eg. 对于方程, 求其二次方根。 已知 则程序如下: if (b^2-4*a*c)<0 msg(“此方程有两复数根”) elseif (b^2-4*a*c)==0 msg(“此方程有两恒等的实数根”) else msg(“此方程有两不等的实数根”) end a b b ac x 2 4 2 − ± − = 0 2 ax + bx + c =
迎 嵌套的语句结构 ■嵌套的f语句:多个f语句合在一起 ■ifx>0 ■ ◆ if y<0 end end 10
10 嵌套的if语句结构 嵌套的if 语句:多个if 语句合在一起 if x > 0 … if y < 0 … end … end