第八讲matlab编程入门

第八讲matlab编程入门

ID:19797415

大小:53.50 KB

页数:11页

时间:2018-10-06

第八讲matlab编程入门_第1页
第八讲matlab编程入门_第2页
第八讲matlab编程入门_第3页
第八讲matlab编程入门_第4页
第八讲matlab编程入门_第5页
资源描述:

《第八讲matlab编程入门》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、第八讲MATLAB编程入门计算机程序就是计算机指令的集合,不同的编程语言指令与功能是不一样的.MATLAB语言是一种面向对象的高级语言,它具有编程效率高、易学易用的优点.MATLAB与其它大部分高级语言一样,有它自己的控制流语句.控制流极其重要,因为它使过去的计算影响将来的运算。MATLAB提供如下几种控制流结构:For循环,While循环,If-Else-End结构和switch-case-end结构。由于这些结构经常包含大量的MATLAB命令,故经常出现在M文件中.MATLAB支持的控制流语句和C语言支持的控制流语句在调用格式上非常相似.1.For循环F

2、or循环允许一条语句或一组语句被重复执行预先指定的次数。For循环的一般形式是:forx=array语句end在for和end语句之间的语句按数组中的每一列执行一次。在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:,n)。例如,forn=1:10x(n)=sin(n*pi/10);endxx=0.30900.58780.80900.95111.00000.95110.80900.58780.30900.0000换句话,第一语句是说:对n等于1到10,执行所有语句,直至下一个end语句。第一次通过For循环n=1,第二次,n=2,如

3、此继续,直至n=10。在n=10以后,For循环结束,然后执行end语句后面的任何命令.注意,该循环结束后,n=10.For循环的其它重要方面是:(1)For循环不能用For循环内重新赋值循环变量n来终止。forn=1:10x(n)=sin(n*pi/10);n=9;endxx=0.30900.58780.80900.95111.00000.95110.80900.58780.30900.0000nn=9执行过程是这样的:n=1,x(1)=sin(pi/10),n=9,n=2,x(2)=sin(2*pi/10),n=9,n=3,...,n=10,x(10)=

4、sin(10*pi/10),n=9.循环结束后,n=9.(2)在For循环内接受任何有效的MATLAB数组。data=[39456;716-15]data=39456716-15forn=datax=n(1)-n(2)endx=-4x=-7x=46x=1(3)For循环可按需要嵌套。forn=1:5form=1:5A(n,m)=n^2+m^2;enddisp(n)end12345AA=2510172658132029101318253417202532412629344150(4)当有一个等效的数组方法来解给定的问题时,应避免用For循环。例如,上面的第一个

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

6、=sin(n*pi/10);end现在,只有x(n)的值需要改变。例1相传古代印度国王要褒奖他的聪明能干的宰相达依尔(国际象棋发明者),问他要什么?达依尔回答:“陛下只要在国际象棋棋盘的第一个格子上放一粒麦子,第二个格子上放二粒麦子,以后每个格子的麦子数都按前一格的两倍计算。如果陛下按此法给我64格的麦子,就感激不尽,其他什么也不要了。”国王想:“这还不容易!”让人扛了一袋麦子,但很快用光了,再扛出一袋还不够,请你为国王算一下共要给达依尔多少小麦?(1小麦约颗)解麦粒总数为程序如下:a=1;s=0fori=1:64s=s+a;a=2*a;ends=s/1.4

7、/10^8运行后得:s=1.3176e+011例2公元前五世纪我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、雏各几何?解设x:鸡翁数,则x的范围:0~19y:鸡母数,则y的范围:0~33z:鸡雏数,则z的范围:0~100则:x+y+z=1005x+3y+z/3=100这是一个不定方程。forx=0:19fory=0:33forz=0:100if(x+y+z==100)&(5*x+3*y+z/3==100)d=[x,y,z]endendendend运行后得结果:d=02575d=418

8、78d=81181d=124842.While循环与

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

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

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