目录
(1)for语句针对行向量的每一个元素执行一次循环语句体,循环的次数就是向量中元素的个数,也可以针对任意向量。
(2)可以在for循环语句体中修改循环变量的值,当程序执行流程再次回到循环开始时,就会自动被设成向量的下一个元素。
(3)for语句中的3个表达式只在循环开始时计算一次,也就是说,向量元素一旦确定将不会再改变。如果表达式中含有变量,即使在循环体中改变变量的值,向量的元素也不改变。
循环结构的基本思想就是重复,重复执行某些语句,以满足大量的计算要求。虽然每次循环执行的语句相同,但语句中一些变量的值是变化的,而且当循环到一定次数或满足条件后能结束循环。
MATLAB提供了两种实现循环结构的语句:for语句和while语句。
一般情况下,对于事先能确定循环次数的循环结构,使用for语句是比较方便的。for语句的格式如下:
for 循环变量=表达式1:表达式2:表达式3
循环语句体
end
其中,“表达式1:表达式2:表达式3”是一个冒号表达式,将产生一个行向量,3个表达式分别代表初值、步长和终值。步长为1时,表达式2可以省略。
关于for循环的执行过程还要说明以下几点。
- >> for k=[1,3,2,5]
- k
- end
-
- k =
-
- 1
-
-
- k =
-
- 3
-
-
- k =
-
- 2
-
-
- k =
-
- 5
- >> for k=[1,3,2,5]
- k
- k=20
- end
-
- k =
-
- 1
-
-
- k =
-
- 20
-
-
- k =
-
- 3
-
-
- k =
-
- 20
-
-
- k =
-
- 2
-
-
- k =
-
- 20
-
-
- k =
-
- 5
-
-
- k =
-
- 20
- >> n=2;
- >> for k=1:2:n+8
- n=5;
- k
- end
-
- k =
-
- 1
-
-
- k =
-
- 3
-
-
- k =
-
- 5
-
-
- k =
-
- 7
-
-
- k =
-
- 9
- >> for k=1:2:10
- end
- >> k
-
- k =
-
- 9
- >> for k=1:-2:10
- k
- end
- >>
例,一个三位整数各位数字的立方和等于该数本身则称为水仙花数。输出全部水仙花数。
程序如下:
- shu=[]; %用于存放结果,先赋空值
- for m=100:999
- m1=fix(m/100); %求m的百位数
- m2=rem(fix(m/10),10); %求m的十位数
- m3=rem(m,10); %求m的个位数
- if m==m1*m1*m1+m2*m2*m2+m3*m3*m3
- shu=[shu,m]; %存放结果
- end
- end
- disp(shu)
运行如下:
- >> Untitled444
- 153 370 371 407
例:已知
当n=100时,求y的值。
程序如下:
- y=0; %设置迭代初值
- n=100; %设置迭代次数
- for i=1:n %设置迭代变量i
- y=y+1/(i*i); %由递推式设置迭代求和
- end
- y %输出迭代终值
运行如下;
- >> Untitled357
-
- y =
-
- 1.6350
例,设
求
程序如下:
- a=0;
- b=3*pi;
- n=1000;
- h=(b-a)/n;
- x=a;
- s=0;
- f0=exp(-0.5*x)*sin(x+pi/6);
- for i=1:n
- x=x+h; %下一个x坐标
- f1=exp(-0.5*x)*sin(x+pi/6); %下一个函数值
- s=s+(f0+f1)*h/2; %求小梯形面积并更新总面积
- f0=f1; %更新函数值
- end
- s
运行如下:
- >> Untitled4364
-
- s =
-
- 0.9008