当前位置:文档之家› matlab课件--第4讲-条件语句和循环语句

matlab课件--第4讲-条件语句和循环语句


4. 为了得到最大的速度,在For 循环被执行之前,应预先 分配数组. » x=zeros(1,10); for n=1:10 x(n)=sin(n*pi/10); end
Matlab 软件实习
for语句更一般的格式为: for 循环变量=矩阵表达式 循环体语句 end 执行过程是依次将矩阵的各列元 素赋给循环变量,然后执行循环体 语句,直至各列元素处理完毕.
Matlab 软件实习
try语句
语句格式为: try 语句组1 catch 语句组2 end try语句先试探性执行语句组1,如果语句组1 在执行过程中出现错误,则将错误信息赋给 保留的lasterr变量,并转去执行语句组2.
Matlab 软件实习
例6: 矩阵乘法运算要求两矩阵的维数相容,否则会 出错.先求两矩阵的乘积,若出错,则自动转去求两 矩阵的点乘. 程序如下: A=[1,2,3;4,5,6]; B=[7,8,9;10,11,12]; try C=A*B; catch C=A.*B; end C lasterr %显示出错原因
x sin x , x 0 y 2 x x e ,x0
给出y值. x=input(‘x=‘) %屏幕提示x=,由键盘输入值赋给x 程 序 如 下
if x>0
y=x*sin(x)
end
y=x^2+exp(x)
Matlab 软件实习
格式2:
if 逻辑表达式
程序语句组1
else 程序语句组2 end if语句计算所跟的逻辑表达式的值,若值为真就做下面 的程序语句组1,然后就跳到end后继续做程序.否则,值 为假,就做else后的程序语句组2,然后再接着做end后的 程序.
Matlab 软件实习
当表达式的值等于表达式1的值时,执行语句组1, 当表达式的值等于表达式2的值时,执行语句组 2,…,当表达式的值等于表达式m的值时,执行 语句组m,当表达式的值不等于case所列的表达式 的值时,执行语句组n.当任意一个分支的语句执行 完后,直接执行switch语句的下一句.
Matlab 软件实习
例12: 若一个数等于它的各个真因子之和,则称该数 为完数,如6=1+2+3,所以6是完数.求[1,500]之间的全 部完数. for m=1:500 s=0; for k=1:m/2 if rem(m,k)==0 s=s+k; end end if m==s disp(m); end end
Matlab 软件实习
2. 语句1 :10 是一个标准的MATLAB 数组创建语句.在 For 循环内接受任何有效的MATLAB 数组. »data=[3 9 45 6; 7 16 -1 5] data = 3 9 45 6 7 16 -1 5 for n=data x=n(1)-n(2) end
Matlab 软件实习
循环语句
1. for-end循环
格式: for 循环变量=初值:步长:终值
循环体语句组
end [注] 步长为1时,可省略.
Matlab 软件实习
例7: 编程生
成一个6阶矩
程序如下: for i=1:6
for j=1:6 if i==j A(i,j)=1; elseif abs(i-j)==1
Matlab 软件实习
例8: 写出下列程序的执行结果。 s=0; a=[12,13,14;15,16,17;18,19,20;21,22,23]; for k=a s=s+k; end disp(s');
Matlab 软件实习
2. while-end循环
一般格式: while 逻辑表达式 循环体语句组
Matlab 软件实习
例5: 某商场对顾客所购买的商品实行打折销售,标 准如下(商品价格用price来表示):
price<200
200≤price<500
没有折扣
3%折扣
500≤price<1000
5%折扣
1000≤price<2500 8%折扣
2500≤price<5000 10%折扣
5000≤price 14%折扣
Matlab 软件实习
例11: 求[100,200]之间第一个能被21整除的整数. 程序如下: for n=100:200 if rem(n,21)~=0 continue end break end n
Matlab 软件实习
循环的嵌套
如果一个循环结构的循环体又包括一个循
环结构,就称为循环的嵌套,或称为多重循环 结构. 多重循环的嵌套层数可以是任意的,可以按 照嵌套层数,分别叫做二重循环、三重循环等. 处于内部的循环叫作内循环,处于外部的循环 叫作外循环.
>>sum = 5050
例10:求自然数前n项 和,项数n由键盘输入.
Matlab 软件实习
3.break语句和continue语句
与循环结构相关的语句还有break语句和continue 语句.它们一般与if语句配合使用. break语句用于终止循环的执行.当在循环体内执行 到该语句时,程序将跳出循环,继续执行循环语句的 下一语句. continue语句控制跳过循环体中的某些语句.当在循 环体内执行到该语句时,程序将跳过循环体中所有 剩下的语句,继续下一次循环.
阵,使其主对
角线相邻上
元素皆为1,
与主对角线 相邻元素皆 为2,其余元 素皆为0.
A end
A(I,j)=2;
else A(I,j)=0; end
end
Matlab 软件实习
关于For 循环的说明:
1. For 循环不能用For 循环内重新赋值循环变量n 来终 止. for n=1:10 x(n)=sin(n*pi/10); n=10; end »x x= Columns 1 through 7 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 Columns 8 through 10 0.5878 0.3090 0.0000
输入所售商品的价格,求其实际销售价格.
Matlab 软件实习 程序如下: price=input('请输入商品价格'); switch fix(price/100) case {0,1} %价格小于200 rate=0; case {2,3,4} %价格大于等于200但小于500 rate=3/100; case num2cell(5:9) %价格大于等于500但小于1000 rate=5/100; case num2cell(10:24) %价格大于等于1000但小于2500 rate=8/100; case num2cell(25:49) %价格大于等于2500但小于5000 rate=10/100; otherwise %价格大于等于5000 rate=14/100; end price=price*(1-rate) %输出商品实际销售价格
给出y的值.
程序如下: x=input('请输入x的值:'); if x<0 y= -1; elseif x==0 y=0; else y=1; end x,y
Matlab 软件实习
switch语句
switch语句根据表达式的取值不同,分别执行不同 的语句,其语句格式为: switch 表达式 case 表达式1 语句组1 case 表达式2 语句组2 …… case 表达式m 语句组m otherwise 语句组n end
x =- 4 x =- 7 x =46 x =1
Matlab 软件实习
3. For 循环可按需要嵌套. 例:利用for循环求1!+2!+3!+ +5!的值 sum=0; for i=1:5 pdr=1; for k=1:i pdr=pdr*k; end sum=sum+pdr; end
Matlab 软件实习
end
表达式一般是由逻辑运算和关系运算以及一般运算 组成的,以判断循环的进行和停止;只要表达式的值
非0,继续循环;直到表达式值为0,循环停止.
Matlab 软件实习
例9:用while循环求1~100间整数的和
sum=0; i=1; while i<=100 sum=sum+i; i=i+1; end sum
Matlab 软件实习
二、多条件语句
if 条件1 程序语句组1 elseif 条件2 程序语句组2 …… elseif 条件m 语句组m else 语句组n end 语句用于实现多分支选择结构
Matlab 软件实习
例4:当从键盘输入自变量x的值,由分段函数
1 , x 0 y 0 ,x 0 1 , x 0
Matlab 软件实习
x ,x0 例2: 计算分段函数的值. 2 e y 2 log( x 1 x ) 程序如下: ,x0 2 x=input('请输入x的值:');
if x<=0 y= (x+sqrt(pi))/exp(2); else y=log(x+sqrt(1+x*x))/2; end x,y
Matlab 软件实习
第四讲
条件语句和循环语句
Matlab 软件实习
条件语句
一、单条件语句
格式1:
if 逻辑表达式
程序语句组
end
if语句计算所跟的逻辑表达式的值,若值为真就做下面 的程序语句组,若值为假就跳到end后继续做程序.
Matlab 软件实习
例1: 当从键盘输入自变量x的值,由分段函数
Matlab 软件实习
例3:当从键盘输入自变量x的值,由分段函数
3 x ,x0 y 2 5 x , x 0
相关主题