matlab教程第七章m文件和面向对象编程(编辑修改稿)内容摘要:

0 0 Results by feval 0 0 内联函数 内联函数的创建 涉及内联函数性质的指令 内联函数创建和应用示例 【例 】演示:内联函数的第一种创建格式;使内联函数适于“数组运算”。 clear,F1=inline(39。 sin(rho)/rho39。 ) F1 = Inline function: F1(rho) = sin(rho)/rho f1=F1(2) f1 = FF1=vectorize(F1) xx=[,1,2]。 ff1=FF1(xx) FF1 = Inline function: FF1(rho) = sin(rho)./rho ff1 = 【例 】演示:第一种内联函数创建格式的缺陷;含向量的多宗量输入的赋值。 G1=inline(39。 a*exp(x(1))*cos(x(2))39。 ),G1(2,[1,pi/3]) G1 = Inline function: G1(a) = a*exp(x(1))*cos(x(2)) ??? Error using == inline/subsref Too many inputs to inline function. G2=inline(39。 a*exp(x(1))*cos(x(2))39。 ,39。 a39。 ,39。 x39。 ),G2(2,[1,pi/3]) G2 = Inline function: G2(a,x) = a*exp(x(1))*cos(x(2)) ans = 【例 】演示:产生向量输入、向量输出的内联函数; 这种向量函数的调用方法。 Y2=inline(39。 [x(1)^2。 3*x(1)*sin(x(2))]39。 ) argnames(Y2) Y2 = 11 Inline function: Y2(x) = [x(1)^2。 3*x(1)*sin(x(2))] ans = 39。 x39。 x=[4,pi/6]。 y2=Y2(x) y2 = 【例 】演示:最简练格式创建内联函数;内联函数可被 feval 指令调用。 Z2=inline(39。 P1*x*sin(x^2+P2)39。 ,2) Z2 = Inline function: Z2(x,P1,P2) = P1*x*sin(x^2+P2) z2=Z2(2,2,3) fz2=feval(Z2,2,2,3) z2 = fz2 = 函数句柄 函数句柄的创建和观察 【例 】为 MATLAB的“内建”函数创建函数句柄,并观察其内涵。 ( 1) hsin=@sin。 ( 2) class(hsin) size(hsin) ans = function_handle ans = 1 1 ( 3) CC=functions(hsin) CC = function: 39。 sin39。 type: 39。 overloaded39。 file: 39。 MATLAB builtin function39。 methods: [1x1 struct] ( 4) ans = d:\matlab6p5\toolbox\symbolic\@sym\sin 12 函数句柄的基本用法 【例 】本例通过函数及其句柄演示若干基本用法。 ( 1) fhandle=str2func(39。 sin39。 )。 ( 2) ys=sin(pi/4) yfold=feval(39。 sin39。 ,pi/4) yfnew=feval(fhandle,pi/4) ys = yfold = yfnew = ( 3) Alpha=sym(39。 pi/439。 )。 yss=sin(Alpha) yfold=feval(39。 sin39。 ,Alpha) ynews=feval(39。 sin39。 ,Alpha) yss = 1/2*2^(1/2) yfold = 1/2*2^(1/2) ynews = 1/2*2^(1/2) ( 4) xold=fminbnd(39。 sin39。 ,0,2*pi) xnew=fminbnd(fhandle,0,2*pi) xold = xnew = 【例 】本例演示:如何避免创建“无效函数句柄“问题。 ( 1) Hy2=@fhzzy % mfiles文件夹上的一个函数文件。 Hy2 = @fhzzy ( 2) class(Hy2) size(Hy2) ans = function_handle ans = 1 1 ( 3) feval(Hy2,39。 line39。 )。 ??? Error using == feval Undefined function 39。 fhzzy39。 . 13 【例 】自建函数及其句柄的使用。 ( 1) [] function Hr=fhzzy(flag ) % fhzzy % % t=(0:100)/100*2*pi。 x=sin(t)。 y=cos(t)。 Hr=@cirline。 feval(Hr,flag,x,y,t) % subfunction function cirline(wd,x,y,t) % % switch wd case 39。 line39。 plot(t,x,39。 b39。 ,t,y,39。 r39。 ,39。 LineWidth39。 ,2) case 39。 circle39。 plot(x,y,39。 g.39。 ,39。 MarkerSize39。 ,30), axis square off otherwise error(39。 输入宗量只能取 39。 39。 line39。 39。 或 39。 39。 circle39。 39。 39。 ) end shg ( 2) Hy3=@fhzzy fhzzy(39。 line39。 )。 Hy3 = @fhzzy 0 1 2 3 4 5 6 7101 图 ( 3) which(39。 fhzzy39。 ) fhzzy not found. ( 4) 14 fhzzy(39。 line39。 ) feval(39。 fhzzy39。 ,39。 line39。 ) ??? Undefined function or variable 39。 fhzzy39。 . ( 5) feval(Hy3,39。 line39。 )。 【例 】子函数句柄的创建与使用。 ( 1) HCL=fhzzy(39。 circle39。 ) HCL = @cirline 图 ( 2) tt=(0:100)/100*2*pi。 xx=sin(tt)。 yy=cos(tt)。 cirline(39。 circle39。 ,xx,yy,tt)。 feval(39。 circle39。 ,xx,yy,tt) ??? Undefined function or variable 39。 cirline39。 . ( 3)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。