概述
三个例子讲解MATLAB三种循环
FOR循环
在for和end语句之间的{commands}按数组中的每一列执行一次。在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:, n)。
如? for n=1:10
x(n)=sin(n*pi/10);
end
当有一个等效的数组方法来解给定的问题时,应避免用For循环。例如,上面的例子可被重写为 ? n=1:10;
? x=sin(n*pi/10)
第二种方式执行速度更快。
为了得到最大的速度,在For循环(While循环)被执行之前,应预先分配数组。
WHILE循环
只要在表达式里的所有元素为真,就执行while和end语句之间的{commands}。通常,表达式的求值给出一个标量值,但数组值也同样有效。在数组情况下,所得到数组的所有元素必须都为真。考虑下列例子:
? num=0;EPS=1;
? while (1+EPS)>1
EPS=EPS/2;
num=num+1;
end
? num
num =
53
? EPS=2*EPS
EPS =
2.2204e-016
这个例子表明了计算特殊MATLAB值eps的一种方法,它是一个可加到1,而使结果以有限精度大于1的最小数值。这里我们用大写EPS,因此MATLAB的eps的值不会被覆盖掉。在这个例里,EPS以1开始。只要(1+EPS)>1为真(非零),就一直求While循环内的命令值。由于EPS不断被2除,EPS逐渐变小以致于EPS+1不大于1。(记住,发生这种情况是因为计算机使用固定数的值来表示数。MATLAB用16位,因此,我们只能期望EPS接近10-16。) 在这一点上,(1+EPS)>是假(零),于是While循环结束。最后,EPS与2相乘,因为最后除2使EPS太小。
IF-ELSE-END结构
如果在表达式中的所有元素为真(非零),那么就执行if和end语言之间的{commands}。在表达式包含有几个逻辑子表达式时,即使前一个子表达式决定了表达式的最后逻辑状态,仍要计算所有的子表达式。例如,
最后
以上就是悲凉哈密瓜为你收集整理的matlab循环语句从小到大排列,三个例子讲解MATLAB三种循环的全部内容,希望文章能够帮你解决matlab循环语句从小到大排列,三个例子讲解MATLAB三种循环所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复