资源描述:
《五Matlab编程入门二.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数学实验Matlab编程(二)function输出形参列表=函数名(输入形参列表)%注释说明部分(可选)函数体语句(必须)第一行为引导行,表示该M文件是函数文件函数名的命名规则与变量名相同(必须以字母开头)当输出行参多于一个时,用方括号括起来函数必须是一个单独的M文件函数文件名必须与函数名一致以百分号开始的语句为注释语句函数文件函数文件由function语句引导functiony=myfliplr(x)%myfliplrFlipmatrixinleft/rightdirection.%returnsXwithrowpres
2、ervedandcolumns%flippedintheleft/rightdirection%%X=123becomes321%456654%num_col=size(x,2);%取x的列数y=x(:,num_col:-1:1);函数文件举例myfliplr.mfunctionprintyh(n)%打印杨辉三角形,本函数没有输出参数yh=1;disp(yh);ifn==1,return;endyh=[1,1];disp(yh);fork=3:nyh_old=yh;k2=ceil(k/2);forl=2:k2yh(l)=y
3、h_old(l-1)+yh_old(l);endyh(k2+1:k)=yh(k-k2:-1:1);disp(yh);end函数文件举例printyh.m例:编写函数文件求半径为r的圆的面积和周长。函数文件如下:function[s,p]=fcircle(r)%CIRCLEcalculatetheareaandperimeterofacircleofradiir%r圆半径%s圆面积%p圆周长s=pi*r*r;p=2*pi*r;函数申明行帮助文本区函数体输入参数输出参数程序2:建立一个函数,将华氏温度转变为摄氏温度,已知公式为
4、:c=5*(f-32)/9首先建立函数文件f2c.m。functionc=f2c(f)函数定义行%computetheFahrenheittemperaturetoCelsiustemperaturec=5*(f-32)/9函数主体然后在MATLAB的命令窗口调用该函数文件。clear;y=input('InputFahrenheittemperature:');x=f2c(y)输出情况为:InputFahrenheittemperature:70c=21.1111x=21.1111利用函数文件,实现直角坐标(x,y)与极
5、坐标(ρ,θ)之间的转换。【数学基础ρ=sqrt(x*x+y*y),θ=atan(y/x)】函数文件tran.m:function[rho,theta]=tran(x,y)rho=sqrt(x*x+y*y);theta=atan(y/x);调用tran.m的命令文件main1.m:x=input('Pleaseinputx=:');y=input('Pleaseinputy=:');[rho,the]=tran(x,y);rhothe函数调用的一般格式输出实参列表=函数名(输入实参列表)函数调用时,实参的顺序应与函数定义时
6、的形参的顺序一致。函数可以嵌套调用,即一个函数可以被其它函数调用,甚至可以被它自身调用,此时称为递归调用。函数所传递的参数具有可调性,Matlab用两个永久变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数。函数调用%函数文件factor.mfunctionf=factor(n)if(n<=1)f=1;elsef=n*factor(n-1);end%main.m%计算s=1!+2!+3!+4!+5!%s=0;fori=1:5s=s+factor(i);endfprintf('s=%g',s)
7、例:利用函数的递归调用计算n!递归函数举例%ex4argin.mfunctionout=ex4argin(a,b)if(nargin==1)out=a;elseif(nargin==2)out=a*b;end参数的可调性举例%ex4argout.mfunction[p,q]=ex4argout(a,b)if(nargout==1)p=a+b;elseif(nargout==2)p=a+b;q=a-b;end函数通过输入和输出参数与其它M文件进行数据传递。当函数调用完毕后,该函数文件中定义的所有局部变量都将被释放,即全部被清
8、除。如果在若干个M文件中,都把某个变量定义为全局变量,则这些函数将公共使用这一变量。所有函数都可以对它进行存取和修改操作。函数文件中的变量都是局部的,即一个函数文件中定义的变量不能被另一个函数文件或其它M文件使用。全局变量与局部变量定义全局变量是M文件间传递信息的一种手段。变量名列表中的各个变量用空格隔