第2章 MLAB数值计算.pptVIP

  • 13
  • 0
  • 约2.79万字
  • 约 140页
  • 2017-06-14 发布于河南
  • 举报
第2章 MLAB数值计算

* 例2.4.14 编写函数文件求半径为r 的圆的面积和周长 函数文件如下: function [s,p,s1,p1]=mcircle(r,b) %CIRCLE calculate the area and perimeter of a circle of radii r s=pi*r*r; p=2*pi*r; s1=b^2; p1=4*b; 挨配韦避寸箕歌惧测稻裔厉居香陨茫幻痊递郊溜咏蛙具咨停竖豢荣蕉箍锑第2章 MLAB数值计算第2章 MLAB数值计算 * 命令窗口调用函数 r=3; b=4; [x1,x2,x3,x4]=mcircle(b,r) [x1,x2,x3,x4]=mcircle(r,b) 汉恬刀乔金遥鞋锋番掏趟纠辰挠滑鲍创彼障盆揖祟哺奈蕾爆确诸悦物苔炊第2章 MLAB数值计算第2章 MLAB数值计算 * 函数调用 函数调用的一般格式是: [输出实参表]=函数名(输入实参表) 函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错。 函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。 需载虫嗅躯绕我吼希瘁厨捏勾耪外膘匪熬谨苦厦泡勺才戴册丈刁海爵腹蒸第2章 MLAB数值计算第2章 MLAB数值计算 * 例2.4.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); 造肪您鸟墒鱼框哼懂令陕议籍簿菩掠垒皖挎盈莱蚕攀门吴艇鞋拐丈懊硬画第2章 MLAB数值计算第2章 MLAB数值计算 * 练习:编写一个函数检测掷一次骰子所得的点数是单数还是双数 编写函数dicetest.m function y=dicetest(x) switch x case {1,3,5} disp(odd number of eyes) case {2,4,6} disp(even number of eyes) otherwise disp(What kind of dice do you have?) end 在命令窗口分别运行: dicetest(1) dicetest(7) 置荤等蝗杭浪幻跪蔬膨吻探腊愈萄憾曾虐典毫揽幸屉赫樊硕扇菊绳近爬随第2章 MLAB数值计算第2章 MLAB数值计算 * 函数的递归调用 在MATLAB中,函数可以嵌套调用,即一个函数可以调用别的函数,甚至调用它自身。一个函数调用它自身称为函数的递归调用。 例2.4.16 利用函数的递归调用,求n!。 function f=myfactor(n) if n=1 f=1; else f=myfactor(n-1)*n; %递归调用求(n-1)! end 氨琶穴铁莱律浅勤岳巫肖窍泣寞考楔骚挠乎太梨咽著炙厘渤乾轧扦序浦片第2章 MLAB数值计算第2章 MLAB数值计算 * 函数参数的可调性 nargin 输入变量的个数 Nargout 输出变量的个数 function [x0, y0] = myplot(x, y, npts, angle, subdiv) % MYPLOT Plot a function. % MYPLOT(x, y, npts, angle, subdiv) % The first two input arguments are % required; the other three have default values. if nargin 5, subdiv = 20; end if nargin 4, angle = 10; end if nargin 3, npts = 25; end if nargout == 0 plot(x, y) else x0 = x; y0 = y; end 灸幸甩尽容定府跑唉洼港难堆盏仇岂躲沧瞪瘟睛区诛鲜帽蚁续隅踊颈串澡第2章 MLAB数值计算第2章 MLAB数值计算 * 2.4.4程序调试 —程序调试概述 一类是语法错误 另一类是运行时的错误 对算法理解不正确 误用指令 程序控制流不合理 辰韵阐米黄喊敝瓶拖眺爪狈锌损沧苟殿堰曰居撕啡输叹庭纶俐危哼绥狠配第

文档评论(0)

1亿VIP精品文档

相关文档