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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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 软件实习
例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 软件实习
循环的嵌套
如果一个循环结构的循环体又包括一个循
环结构,就称为循环的嵌套,或称为多重循环 结构. 多重循环的嵌套层数可以是任意的,可以按 照嵌套层数,分别叫做二重循环、三重循环等. 处于内部的循环叫作内循环,处于外部的循环 叫作外循环.
end
表达式一般是由逻辑运算和关系运算以及一般运算 组成的,以判断循环的进行和停止;只要表达式的值
非0,继续循环;直到表达式值为0,循环停止.
Matlab 软件实习
例9:用while循环求1~100间整数的和
sum=0; i=1; while i<=100 sum=sum+i; i=i+1; end sum
Matlab 软件实习
例3:当从键盘输入自变量x的值,由分段函数
x3 , x 0 y 2 5 x , x 0
给出y的值.
Matlab 软件实习
【例】 输入三角形的三条边,求面积.
A=input('请输入三角形的三条边:');
if A(1)+A(2)>A(3) & A(1)+A(3)>A(2) & A(2)+A(3)>A(1) p=(A(1)+A(2)+A(3))/2; s=sqrt(p*(p-A(1))*(p-A(2))*(p-A(3))); disp(s); else disp('不能构成一个三角形。') end 运行: 请输入三角形的三条边:[4 5 6] 9.9216
x sin x , x 0 y 2 x x e , x 0
给出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 软件实习 程序如下: 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) %输出商品实际销售价格
>>sum = 5050
例10:求自然数前n项 和,项数n由键盘输入.
Matlab 软件实习
3.break语句和continue语句
与循环结构相关的语句还有break语句和continue 语句.它们一般与if语句配合使用. break语句用于终止循环的执行.当在循环体内执行 到该语句时,程序将跳出循环,继续执行循环语句的 下一语句. continue语句控制跳过循环体中的某些语句.当在循 环体内执行到该语句时,程序将跳过循环体中所有 剩下的语句,继续下一次循环.
Matlab 软件实习
当表达式的值等于表达式1的值时,执行语句组1, 当表达式的值等于表达式2的值时,执行语句组 2,…,当表达式的值等于表达式m的值时,执行 语句组m,当表达式的值不等于case所列的表达式 的值时,执行语句组n.当任意一个分支的语句执行 完后,直接执行switch语句的下一句.
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 逻辑表达式 循环体语句组
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 软件实习
给出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
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 软件实习
例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 软件实习
第四讲
条件语句和循环语句
Matlab 软件实习
条件语句
一、单条件语句
格式1:
if 逻辑表达式
程序语句组
end
if语句计算所跟的逻辑表达式的值,若值为真就做下面 的程序语句组,若值为假就跳到end后继续做程序.
Biblioteka Baidu
Matlab 软件实习
例1: 当从键盘输入自变量x的值,由分段函数
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 软件实习
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
4. 为了得到最大的速度,在For 循环被执行之前,应预先 分配数组. » x=zeros(1,10); for n=1:10 x(n)=sin(n*pi/10); end
Matlab 软件实习
for语句更一般的格式为: for 循环变量=矩阵表达式 循环体语句 end 执行过程是依次将矩阵的各列元 素赋给循环变量,然后执行循环体 语句,直至各列元素处理完毕.
阵,使其主对
角线相邻上
元素皆为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 软件实习
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 %显示出错原因
相关文档
最新文档