欢迎来到天天文库
浏览记录
ID:41359044
大小:380.00 KB
页数:27页
时间:2019-08-22
《《MATLAB程序设计》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、5.MATLAB程序设计MATLAB语言简洁高效,被称为第四代编程语言。1一、M文件包含MATLAB代码的文件称为M文件,扩展名为.m。2M文件的形式M文件有两种形式:独立的M文件—称命令文件(ScriptFile)可调用M文件—称函数文件(FunctionFile)31.命令文件命令文件是一串指令的集合,没有输入输出参数。与在命令窗口逐行执行文件中的所有指令等价。4【例】绘制“花瓣”图案%一个用来绘制花瓣(flowerpetal)图案的命令文件theta=-pi:0.01:pi;rho(1,:)=2*sin(5*theta).^2;rho(2,
2、:)=cos(10*theta).^3;rho(3,:)=sin(theta).^2;rho(4,:)=5*cos(3.5*theta).^3;fori=1:4polar(theta,rho(i,:),'r')pauseend将该文本文件命名为petal.m,并在指令窗口运行petal,将看到下面的图案56几点说明若用户把petal.m存放在d:mywork中,那么在运行前,应在指令窗中运行cdd:mywork或将其加入搜索路径petal运行后存放在内存中的变量,可以用whos看到72.函数文件如果M文件的第一行包含function,此文件就
3、是函数文件。函数文件区别于命令文件之处是:命令文件中的变量在执行完后保存在内存中函数文件中的变量在执行完后将被清除函数文件有输入输出参数,命令文件没有8【例】计算向量元素的平均值functiony=average(x)%本函数计算向量元素的平均值y=sum(x)/length(x);%计算过程9几点说明第一行执行指令的作用:指明该文件是函数文件;定义函数名、输入参数和输出参数。M文件的文件名必须是<函数名>.m在M文件前的几行注释可供help命令查询。10二、程序结构MATLAB有顺序、循环和分支3种基本程序结构。循环由while和for语句实现
4、,分支由if和switch语句实现。11语法为:fori=表达式(表达式为一个向量){可执行语句}end【例】:利用for循环求1+3++9的值s=0;fori=1:2:9s=s+i;ends=251.for-end循环12for循环的嵌套【例】:利用for循环求1!+2!+3!++5!的值s=0;fori=1:5pdr=1;fork=1:ipdr=pdr*k;ends=s+pdr;ends=153132.while-end循环while循环将循环体中的语句循环执行不定次数。语法为:while表达式{循环体语句}end表达式一般是由逻
5、辑运算和关系运算以及一般运算组成的,以判断循环的进行和停止;只要表达式的值非0,继续循环;直到表达式值为0,循环停止。14【例】:用while循环求1~100间整数的和s=0;i=1;whilei<=100s=s+i;i=i+1;endss=5050153.分支结构if—else—end语句有3种形式:if表达式执行语句endif表达式———是语句1else————否语句2end16if表达式1语句1elseif表达式2语句2elseif表达式3语句3···else语句nend多分支结构17【例】:编写函数,计算函数值x(x<=1)2x-1
6、(1=10)ifx>=10y=3*x-11;elseifx>1y=2*x-1;elsey=x;end18四、程序流控制input——提示用户从键盘输入数值、字符串、表达式。【例】:>>n=input('Howmanyapples=')Howmanyapples=5n=5pause——暂停,等待用户响应,并在继续执行前按任一个键。pause(n)--暂停n秒。break——中断for,while循环语句的执行,在嵌套循环结构中,break从最里层循环退出。19【例】:求[100,200]之间第一个能被21整除的整数。fo
7、rn=100:200ifrem(n,21)~=0continueendbreakendn20五、函数调用在MATLAB中,调用函数的常用形式是:[输出参数1,输出参数2,...]=函数名(输入参数1,输入参数2,...)注意:函数调用时各参数出现的顺序,应该与函数定义时的顺序一样,否则出错。21函数调用可以嵌套,一个函数可以调用别的函数,甚至它自己,即递归调用。【例】:用递归调用形式计算n的阶乘functionf=factor(n)%factor.m计算n的阶乘ifn==1f=1;return;elsef=n*factor(n-1);endfac
8、tor(5)ans=12022练习11.利用for循环求s=1–1/2+1/3-1/4+......+1/99-1/100的值。2.生成
此文档下载收益归作者所有