MATLAB入门学习笔记5

不问归期 提交于 2020-02-26 07:36:53

循环语句(续)

while循环-示例3-最大公约数计算

最大公约数原理
两数相除得到余数(不论是大数除以小数还是反之),此后一直用除数除以余数,直到余数为0,最后一个式子的除数即为最大公约数.
(如表:小数除以大数则多出来第一行,并不影响结果)

数1(a) 数2 (b) 余数( r )
196 371 0 196
371 196 1 175
196 175 1 21
175 21 8 7
21 7 3 0

代码
a = input ('a = ');
b = input ('b = ');
r = mod( a , b );
while r~=0
a=b;
b=r;
r=mod(a,b);
end
disp(b)
注意:不等号表示为“~=”

for循环-示例1-简单输出

(1 😃)
代码
for i = -2:1
disp( i );
end
表示
i从-2每次加1,一直加到i等于1.则依次输出四个值,分别是-2、-1、0、1.
(2 😃)

如果想要每次以0.5的步长增加,则如下:
for i = -2:0.5:1
disp( i );
end

(3 😃)
MATLAB中默认从开始值到结束值是递增的,因此,如果想要从大数变为小数,步长设为负值即可,如下:
for i = 1:-1:-2
disp( i );
end

for循环-示例2-累加计算

(1 😃)
1+2+…+100=?
代码
s= 0;
for i = 1 :1: 100
s = s + i;
end
disp( s )

(2 😃)
1+ 1/2+ 1/3+ 1/4+…+ 1/100=?
代码
s = 0;
for i = 1:100
s = s + 1/i;
end
disp( s )

(3 😃)
1-1/2+1/3-1/4+…-1/100=?
<方法一>——为了用mod函数
s = 0;
for i = 1:100
if mod(i, 2) ==1
s = s + (1/i);
else
s = s - (1/i);
end
end
disp( s )
注意1):有两个end,for-end和if-else-end
注意2)为变量赋值,用“=”;要比较值是否相等,用“= =”
<方法二>——定义新变量控制符号
s = 0;
a = 1;
for i = 1:100
s = s + a/i;
a = -a;
end
disp( s )
<方法三>——给符号设置函数
s = 0;
a = 1;
for i = 1:100
s = s + (-1)^(i-1)/i;
end
disp( s )

for循环-作用的理解

上面的两个示例体现了for循环的基本作用,读值以及计算,具体应用如下:
读取向量中的值
v = [ 5 7 9 10 ];
for i = v
disp( i );
end
求向量中所有数字的和
v = [5 7 9 10 ];
s = 0;
for i = v
s = s + i;
end
disp( s );
检验和正不正确,可以用sum函数。最后加一行disp(sum(v))

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!