当前位置:文档之家› L3 Matlab编程之循环2

L3 Matlab编程之循环2

While语句
while语句为条件循环语句,执行次数决定于逻辑条件。 Break 可以用来跳出循环。 基本调用格式:
while
判断表达式 是否满足? 满足(Y) 语句组A 不满足(N)
while 表达式
语句A
end
2013-10-24
end
条件执行结束
18
CONTROL STATEMENTS
While语句
2013-10-24 3
CONTROL STATEMENTS
for 语句
• 可以嵌套 • break 语句终止循环 • 当有一个等效的数组方法来解给定的问题 时,应避免用For循环。
2013-10-24
4
CONTROL STATEMENTS
for 语句
Example 1
% mfor1.m for loop …… clear;close all; n= b=0; 7 for a=1:0.6:5 b= a, 7 b=b+1, end n=1+floor((5-1)/0.6),b 2013-10-24
2013-10-24
floor( ) 向下取整
2
CONTROL STATEMENTS
for 语句
1. 循环的开始,产生控制表达式. 2. 第一次循环,循环变量index被赋值控制表达式的第一 个值,然后执行循环体内的语句. 3. 循环体内语句执行完毕,控制表达式的下一个值被赋 给index,然后循环体内语句再次被执行. 4. 第三步重复执行,直到控制表达式的最后一个值被赋 给循环变量index,并执行完最后一次循环体内语 句,for循环结束,开始for循环体外的下一条命令.
write out sum
2013-10-24 10
CONTROL STATEMENTS
4.Matlab算法
Example 2
for 语句
% mfor2.m for Vectorization of Loops end=100000; tic:计时开始 tic, s1=0; for k=1:end toc:运行时间 s1=s1+(1/2^k+1/3^k); end sum: matlab s1,t1=toc, tic,k=1:end; 内置求和函数 s2=sum(1./2.^k+1./3.^k), 2013-10-24 t2=toc,
Lecture 3:
Matlab Programming (2)-Loops
2013-10-24
1
CONTROL STATEMENTS
for 语句
控制表达式
循环语句,调用的基本格式如下: index:循环变量 for index=初值:增量:终值 语句组A end 功能:把语句组A(亦称为循环体)反复执行N次。 循环次数N为:N=1+floor((终值-初值)/增量) 在每次执行时程序中的index的值按“增量”变化。
21
CONTROL STATEMENTS
for and while
1.都是循环语句。
2. for 循环次数确定。 3. while 循环次数不确定,次数取决 于条件。
2013-10-24 22
In Class Exercise 1
完成教材P171 例5.5 读懂程序,体会为什么 sum=sum+n
2013-10-24
13
CONTROL STATEMENTS
设计算法
for n=100 to 200
if n 能被 21 整除 则 退出for循环 end if end for
2013-10-24
14
CONTROL STATEMENTS
% if5.m for n=100:200 if5 if rem(n,21)==0 n= break 105 end end n rem(x,y): x/y 取余数
7
CONTROL STATEMENTS
Top-Down 1. 陈述问题
for 语句 例题2
求解级数的和
2. 定义输入和输出
输入级数的求和项数
输出级数的和
2013-10-24 8
CONTROL STATEMENTS
Top-Down 3. 设计算法 初始化级数和为零
for 语句 例题2
累加级数和
写出级数和
11
CONTROL STATEMENTS
5.调试matlab 程序
s1 = 1.5000 t1 = 0.7650 s2 = 1.5000 t2 = 0.2970
2013-10-24
for 语句
Example 2
12
CONTROL STATEMENTS
for 语句
Example 3
求[100,200]之间 第一个能被21整除的整数。
cos t calculate X X Vo
calaulate Y Y Vo 1 g 2 sin t t 2 plot(x,y)
2013-10-24
end for
28
In Class Exercise
4. Matlab 实现算法 Hints:
1. 运行轨迹的时间范围时从抛出到落地
2. x,y的参数方程形式,plot可以画出轨迹. 3. 画出300斜抛角度情况下的运行轨迹,来验证是否正确 理解了物理过程. 4.在第三步的基础上,画出50—850,间隔100的斜抛角度的 轨迹,要求在一个图上同时显示.
2013-10-24 29
k=k+1
a(k+2)=a(k)+a(k+1)
2013-10-24
end while
20
CONTROL STATEMENTS
While语句
Example : % while1.m for the usage of while control a(1)=1;a(2)=1;k=0; if3 ans while a(k+2)<=10000 = k=k+1; 21 a(k+2)=a(k)+a(k+1); ans = end; 10946 k+2,a(k+2), 2013-10-24
X Vx Vo t cos t 1 2 Y Vy g t t 2 1 Vo g 2 sin t t 2
2013-10-24
25
In Class Exercise 2
物体落地时,满足Y=0
1 Y Vo 1 g 12 0 sin t t 2 sin t1 2Vo g Vo 2 2 sin X Vo 1 cos t
2013-10-24
9
CONTROL STATEMENTS
3. 设计算法
assign kend=100000
initialize sum=0 loop: from k=1 to kend k=k+1
for 语句 例题2
Top-Down
伪码算法流程
sum=sum+(1/k^2+1/k^3)
loop kend
2013-10-24 15
CONTROL STATEMENTS
for 语句
Example 3 教材P174-175
break语句用于终止循环的执行。当在 循环体内执行到该语句时,程序将跳出 循环。 continue语句控制跳过循环体中的某些 语句。当在循环体内执行到该语句时, 程序将跳过循环体中所有剩下的语句, 继续下一次循环。
2013-10-24 16
CONTROL STATEMENTS
% if4.m for n=100:200 if rem(n,21)~=0 continue end break end n for 语句
Example 3
if4 n= 105
2013-10-24
17
CONTROL STATEMENTS
n=n+2
两条语句这样的顺序
2013-10-24 23
In Class Exercise 2
斜抛问题: Vo Vo=20m/s
研究运行轨迹和入射角的关系
并画出轨迹
Vx Vo cos Vy Vo sin
2013-10-24
24
In Class Exercise
物理学分析: 物体斜抛出去之后,它的位移可以分 解成水平位移X和竖直位移Y

Example :
Fibonacci数组的元素满足Fibonacci 规则:
ak 2 ak ak 1 (k 1,2,) 且 a1 a2 1
要该数组中第一个大于10000的元素。
2013-10-24 19
CONTROL STATEMENTS
While语句
设计算法
assign a(1)=a(2)=1 assign k=0 while a(k+2)<=10000
5
CONTROL STATEMENTS
for 语句
10000
Example 2
1 1 计算 i i 3 i1 2
2013-10-24 6源自 2013-10-24CONTROL STATEMENTS n for 语句 1 1 Sn i i Example 2 3 i 1 2 n 1 1 1 S n 1 i i 3 i 1 2 1 1 S n 1 S n n 1 n 1 3 2
2013-10-24
g
26
In Class Exercise 2
Top-Down
1. 陈述问题 画出不同斜抛角度下的运行轨迹 2. 定义输入输出 输入: 初速度 输出: 运行轨迹
相关主题