MATLAB中的决策:控制流.doc

MATLAB中的决策:控制流.doc

ID:57887218

大小:55.50 KB

页数:8页

时间:2020-09-02

MATLAB中的决策:控制流.doc_第1页
MATLAB中的决策:控制流.doc_第2页
MATLAB中的决策:控制流.doc_第3页
MATLAB中的决策:控制流.doc_第4页
MATLAB中的决策:控制流.doc_第5页
资源描述:

《MATLAB中的决策:控制流.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MATLAB中的决策:控制流计算机编程语言和可编程计算器提供许多功能,它允许你根据决策结构控制命令执行流程。如果你以前已经使用过这些功能,对此就会很熟悉。相反,如果不熟悉控制流,本章材料初看起来或许复杂些。如果这样,就慢慢来。控制流极其重要,因为它使过去的计算影响将来的运算。MATLAB提供三种决策或控制流结构。它们是:For循环,While循环和If-Else-End结构。由于这些结构经常包含大量的MATLAB命令,故经常出现在M文件中,而不是直接加在MATLAB提示符下。7.1For循环For循环允许一组命令以固定的和预定的次数重复。For循环的一般形式是:forx=a

2、rray{commands}end在for和end语句之间的{commands}按数组中的每一列执行一次。在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:,n)。例如,»forn=1:10x(n)=sin(n*pi/10);end»xx=Columns1through70.30900.58780.80900.95111.00000.95110.8090Columns8through100.58780.30900.0000换句话,第一语句是说:对n等于1到10,求所有语句的值,直至下一个end语句。第一次通过For循环n=1,第二次,n=2,如此继

3、续,直至n=10。在n=10以后,For循环结束,然后求end语句后面的任何命令值,在这种情况下显示所计算的x的元素。For循环的其它重要方面是:1.For循环不能用For循环内重新赋值循环变量n来终止。»forn=1:10x(n)=sin(n*pi/10);n=10;end»xx=Columns1through70.30900.58780.80900.95111.00000.95110.8090Columns8through100.58780.30900.00002.语句1:10是一个标准的MATLAB数组创建语句。在For循环内接受任何有效的MATLAB数组。»data

4、=[39456;716-15]data=39456716-15forn=datax=n(1)-n(2)endx=-4x=-7x=46x=13.For循环可按需要嵌套。forn=1:5form=5:-1:1A(n,m)=n^2+m^2;enddisp(n)end12345»AA=25101726581320291013182534172025324126293441504.当有一个等效的数组方法来解给定的问题时,应避免用For循环。例如,上面的第一个例子可被重写为»n=1:10;»x=sin(n*pi/10)x=Columns1through70.30900.58780.80

5、900.95111.00000.95110.8090Columns8through100.58780.30900.0000两种方法得出同样的结果,而后者执行更快,更直观,要求较少的输入。5.为了得到最大的速度,在For循环(While循环)被执行之前,应预先分配数组。例如,前面所考虑的第一种情况,在For循环内每执行一次命令,变量x的大小增加1。迫使MATLAB每通过一次循环要花费时间对x分配更多的内存。为了消去这个步骤,For循环的例子应重写为»x=zeros(1,10);%preallocatedmemoryforx»forn=1:10x(n)=sin(n*pi/10)

6、;end现在,只有x(n)的值需要改变。7.2While循环与For循环以固定次数求一组命令的值相反,While循环以不定的次数求一组语句的值。While循环的一般形式是:whileexpression{commands}end只要在表达式里的所有元素为真,就执行while和end语句之间的{commands}。通常,表达式的求值给出一个标量值,但数组值也同样有效。在数组情况下,所得到数组的所有元素必须都为真。考虑下列例子:»num=0;EPS=1;»while(1+EPS)>1EPS=EPS/2;num=num+1;end»numnum=53»EPS=2*EPSEPS=2

7、.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)>1是假(零),

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。