您的位置:首页 > 编程语言 > MATLAB

MATLAB入门教程(3)判断与循环

2020-07-16 06:09 696 查看

第三节
(1)判断语句
在上面的脚本文件中出现了上节讲的输入输出语句,这里的条件判断和C语言中的用法大同小异,区别就在与没有了括号,else和if间没有了空格,最后需要end结尾。并且出现了和C语言一样功能的‘\n’,功能同样是换行。
这里有一个简单的题目,输入三条边值,判断是否可以构成三角形。

还有一个求方程根的个数的例题:

在这道题中值得说明的是一些基本运算的符号,比如次方,求平方根以及之前所说的%g格式输出,在MATLAB中是使用‘%’作为注释符的。
(2)循环语句
我们在C语言中有两种循环方式,一种是使用for循环,一种是while循环,在MATLAB也是如此。

在上面脚本中,要求我们输入一个1到100间的整数,被注释的命令表示如果是在这个范围内的就输出这个数的平方,如果不是就输出‘wrong’,
ps:在这里出现了disp函数,这个也是用于输出的语句,以后还会碰到sprintf,他们和fprintf的区别具体请看disp fprintf sprintf 的区别(示例简单明了)
在上述中出现了while循环,注意没有括号,最后也是以end结尾,通过设定一个变量作为跳出循环的判断。
这里有一个使用while循环的例题:
求两个数的最大公约数。(在这里使用辗转相除法

a=input('a= '); 	%输入两个数
b=input('b= ');

r=mod(a,b); 	%求a除以b的余数
while r~=0     %只要余数不为0就一直进行辗转相除法
a=b;
b=r;
r=mod(a,b);
end
disp(b);

除了while循环外还有for循环

for i = -1 : 5
disp(i);
end

表示i从-1每次加一,一直加到5,共运行了7次,值得说明的是每次增加的步数是可以改变的。如果不写就默认是加一。
如下代码就是表示从1开始每次将i增加0.5,一直加到i等于5。

for i = 1 : 0.5 : 5
disp(i);
end

那如果我们想要让i从大到小呢,比如从5到-1。
可以运用上面所说的

for i = 5 : -1 : -1		%以5为起点,以-1为终点,每次-1
disp(i);
end

做个例题,计算1+1/2+1/3+…+1/100;

s=0;
for i=1:100
s=s+(1/i);%分数相加1+1/2+...+1/100
disp(s);
end

在此基础上可以尝试做一下1-1/2+1/3-…+1/99-1/100;
当然了,MATLAB是矩阵实验室,当然可以在矩阵上用循环了;

v=[5 7 9 10 13 3 2 1];
s=0;
for i=v
s=s+i;
end
disp(s);

%disp(sum(v));

在上面代码中用for循环对该行向量元素逐个访问累加并输出结果,最后一行使用了MATLAB提供的求和函数对该行向量进行求和,结果运行后是一致的。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: