我是靠谱客的博主 细腻灯泡,这篇文章主要介绍MATLAB循环结构1、for语句 ,现在分享给大家,希望可以做个参考。

目录

1、for语句 

注意事项

(1)for语句针对行向量的每一个元素执行一次循环语句体,循环的次数就是向量中元素的个数,也可以针对任意向量。

(2)可以在for循环语句体中修改循环变量的值,当程序执行流程再次回到循环开始时,就会自动被设成向量的下一个元素。

(3)for语句中的3个表达式只在循环开始时计算一次,也就是说,向量元素一旦确定将不会再改变。如果表达式中含有变量,即使在循环体中改变变量的值,向量的元素也不改变。

(4)退出循环之后,循环变量的值就是向量中最后的元素值。

(5)当向量为空时,循环体一次也不执行。

基础例题

(1)水仙花数

(2)迭代求和

(3)梯形法求定积分


循环结构的基本思想就是重复,重复执行某些语句,以满足大量的计算要求。虽然每次循环执行的语句相同,但语句中一些变量的值是变化的,而且当循环到一定次数或满足条件后能结束循环。

MATLAB提供了两种实现循环结构的语句:for语句while语句

1、for语句 

一般情况下,对于事先能确定循环次数的循环结构,使用for语句是比较方便的。for语句的格式如下:

for 循环变量=表达式1:表达式2:表达式3

     循环语句体

end

其中,“表达式1:表达式2:表达式3”是一个冒号表达式,将产生一个行向量,3个表达式分别代表初值、步长和终值。步长为1时,表达式2可以省略。 

注意事项

关于for循环的执行过程还要说明以下几点。

(1)for语句针对行向量的每一个元素执行一次循环语句体,循环的次数就是向量中元素的个数,也可以针对任意向量。

复制代码
1
2
3
4
5
6
7
8
9
10
11
>> for k=[1,3,2,5] k end k = 1 k = 3 k = 2 k = 5

(2)可以在for循环语句体中修改循环变量的值,当程序执行流程再次回到循环开始时,就会自动被设成向量的下一个元素。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>> 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

(3)for语句中的3个表达式只在循环开始时计算一次,也就是说,向量元素一旦确定将不会再改变。如果表达式中含有变量,即使在循环体中改变变量的值,向量的元素也不改变。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>> n=2; >> for k=1:2:n+8 n=5; k end k = 1 k = 3 k = 5 k = 7 k = 9

(4)退出循环之后,循环变量的值就是向量中最后的元素值。

复制代码
1
2
3
4
5
>> for k=1:2:10 end >> k k = 9

(5)当向量为空时,循环体一次也不执行。

复制代码
1
2
3
4
>> for k=1:-2:10 k end >>

基础例题

(1)水仙花数

例,一个三位整数各位数字的立方和等于该数本身则称为水仙花数。输出全部水仙花数。

 程序如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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)

运行如下:

复制代码
1
2
3
4
5
>> Untitled444 153 370 371 407

(2)迭代求和

例:已知

   

当n=100时,求y的值。 

程序如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
y=0; %设置迭代初值 n=100; %设置迭代次数 for i=1:n %设置迭代变量i y=y+1/(i*i); %由递推式设置迭代求和 end y %输出迭代终值

 运行如下;

复制代码
1
2
3
>> Untitled357 y = 1.6350

(3)梯形法求定积分

例,设

程序如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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

运行如下:

复制代码
1
2
3
4
>> Untitled4364 s = 0.9008

最后

以上就是细腻灯泡最近收集整理的关于MATLAB循环结构1、for语句 的全部内容,更多相关MATLAB循环结构1、for语句 内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部