第 5 章 matlab程序设计2.ppt
文本预览下载声明
第五章 MATLAB程序设计(第二讲) 【本章学习目标】 ● 掌握建立和执行M文件的方法。 ● 掌握利用if语句、switch语句实现选择结构的方法。 ● 掌握利用for语句、while语句实现循环结构的方法。 ● 熟悉利用向量运算来代替循环操作的方法。 ● 掌握定义和调用MATLAB函数的方法。 §5.3 函数文件 §5.3 函数文件 其中,以function开头的一行为引导行,表示该M文件是一个函数文件。函数名的命名规则与变量名相同。输入形参为函数的输入参数,输出形参为函数的输出参数。当输出形参多于一个时,则应该用方括号括起来。 (1)函数文件名通常由函数名再加上扩展名.m组成,不过函数文件名与函数名也可以不相同。当两者不同时,MATLAB将忽略函数名而确认函数文件名,因此,调用时使用函数文件名。 §5.3 函数文件 【例5.14】编写求一个向量之和以及向量平均值的函数文件。 函数文件如下: function [s,m]=fvector(v) %VECTOR fvector.m calculates sum and mean of a vector %v 向量 %s 和 %m 平均值 %2010年4月8日编 §5.3 函数文件 [m,n]=size(v); if (m1 n1) | (m==1 n==1) error(Input must be a vector) end s=sum(v); %求向量和 m=s/length(v); %求向量平均值 将以上函数文件以文件名fvector.m存盘,然后在MATLAB命令窗口调用该函数: [s,p]=fvector(1:10) §5.3 函数文件 (2)注释说明包括如下3部分内容。 ●紧随函数文件引导行之后以%开头的第一注释行。这一行一般包括大写的函数文件名和函数功能简要描述,供lookfor关键词查询和help在线帮助用。 ●第一注释行及之后连续的注释行。通常包括函数输入输出参数的含义及调用格式说明等信息,构成全部在线帮助文本。 ●与在线帮助文本相隔一空行的注释行。包括函数文件编写和修改的信息,如作者、修改日期、版本等内容,用于软件档案管理。 §5.3 函数文件 采用help命令或lookfor命令可以显示出注释说明部分的内容,其功能和一般MATLAB函数的帮助信息是一致的。 利用help命令可查询fvector函数的注释说明: help fvector 再用lookfor命令在第一注释行查询指定的关键词: lookfor fvector (3)如果在函数文件中插入了return语句,则执行到该语句就结束函数的执行,程序流程转至调用该函数的位置。 §5.3 函数文件 §5.3 函数文件 【例5.15】利用函数文件,实现直角坐标(x,y)与极坐标(ρ,?)之间的转换。 函数文件tran.m: function [rho,theta]=tran(x,y) rho=sqrt(x*x+y*y); theta=atan(y/x); 调用tran.m的命令文件main1.m: x=input(Please input x=:); y=input(Please input y=:); [rho,the]=tran(x,y); rho the §5.3 函数文件 在MATLAB中,函数可以嵌套调用,即一个函数可以调用别的函数,甚至调用它自身。一个函数调用它自身称为函数的递归调用。 【例5.16】利用函数的递归调用,求n! n!本身就是以递归的形式定义的: 显然,求n!需要求(n?1)!,这时可采用递归调用。递归调用函数文件factor.m如下: §5.3 函数文件 factor.m如下: function f=factor(n) if n=1 f=1; else f=factor(n-1)*n; %递归调用求(n-1)! end §5.3 函数文件 在命令文件main2.m中调用函数文件factor.m,求 s?=?1!?+?2!?+?3!?+?4!?+?5!。 %main2.m文件 s=0; for i=1:5 s=s+factor(i); end s §5.3 函数文件 §5.3 函数文件 【例5.17】nargin用法示例。 函数文件examp.m: function fout=examp(a,b,c) if
显示全部