matlab教程与实训考试题,MATLAB教程及实训第2版曹弋课件5章节.ppt

3. 重载函数 重载函数是指两个函数使用相同的名称,处理的功能相似,但参数类型或个数不同,重载函数通常放在不同的文件夹下,文件夹名称以“@”开头后面跟一个数据类型名 。 例如,“@int”文件夹下放置的是参数类型为int的函数文件, 1. 函数的搜索过程 当在MATLAB中输入一个函数名时,首先确认不是变量名后,函数搜索的顺序如下: 检查是否是本M函数文件内部的子函数; 检查是否是“private”目录下的私有函数; 检查是否在当前路径中; 检查是否在搜索路径中。 2. P码文件 P码就是伪代码(Pseudocode),一个M文件第一次被调用时,MATLAB就将其进行编译并生成P码文件存放在内存中,生成的P码文件与原M文件名相同,其扩展名为“.p”,P码文件的保密性好。 pcode File1.m,File2.m...... -inplace %生成File1.p,File2.p……文件 3. 函数的工作空间 每一个M函数运行时都有一个内存区,称为函数的工作空间。 函数句柄(Function_Handle)包含了函数的路径、函数名、类型以及可能存在的重载方法,即函数是否为内部函数、M或P文件、子函数、私有函数等,函数句柄提供了一种间接的函数调用方法,匿名函数实际上也是一种函数句柄,MATLAB的所有M函数和内部函数都可以通过创建函数句柄来实现。 (1)使用一个已有的函数创建函数句柄 fhandle=@fun %创建函数句柄 (2)使用匿名函数创建函数句柄 fhandle=@(arg1,arg2,......)(expr) %创建匿名函数 例:使用两种方法创建函数句柄,计算f=e-xsin(x)的值。 方法一 >> fnd1=@sin%创建函数句柄 >> x=0:20; >> y=fnd1(x)%调用函数 方法二: 创建函数ex5_18_1并保存为“ex5_15_2.m”文件: >> fnd=@ex5_15_2 fnd = @ex5_15_2 >> x=0:10; >> y=fnd(x) (2)使用匿名函数创建函数句柄 fhandle=@(arg1,arg2,......)(expr)%创建匿名函数 例5-16 使用匿名函数创建 和 。 >> fhnd1=@(x)(1+exp(-x));%创建匿名函数 >> rf1=fhnd1(2)%调用匿名函数 rf1 = 1.1353 >> fhnd2=@(x,y)(sin(fhnd1(x))+cos(fhnd1(y)));%创建嵌套匿名函数 >> rf2=fhnd2(1,2) 2. 函数句柄的调用 在使用函数句柄调用函数时,可以直接调用也可以使用feval命令调用,命令格式如下: [y1,y2,…]=fhandle(arg1,arg2…)%调用函数句柄fhandle [y1,y2,…]=feval(fhandle,arg1,arg2…) [y1,y2,…]=feval('fun',arg1,arg2…) 3. 处理函数句柄的函数 (1)functions函数 functions(fhandle)用来获得函数句柄的信息。 (2)func2str和str2func函数 func2str(fhandle)函数是将函数句柄转换成函数名称字符串,str2func(str)函数则相反,将字符串函数名转换为函数句柄。 (3)isa函数 isa函数是用来判断变量是否是函数句柄: isa(var,'function_handle?) %判断var是否是函数句柄 创建inline对象就是使用inline函数将字符串转换成inline对象。 inline_fun=inline(‘string’‘,arg1,arg2,…)%创建inline对象 例: >> f=inline('sin(x)*exp(-z*x)','x','z') %创建inline对象f >> class(f) %查看f的类型 ans = inline >> y1=f(1,2) %调用inline对象f y1 = 0.1139 fplot命令可以绘制函数的曲线。 fplot(fun,limits,tol,Linespec) %绘制函数fun的曲线 fplot(fun,limits,n) 说明:fun是函数句柄或函数名;limits是自变量的取值范围[xmin xmax]或[xmin xmax ymin ymax];tol是相对误差度,默认为2e-3,可省略;Linespec是线型,与plot命令的设置相同,可省略;n是绘制的点数,当n≥1时至少绘制n+1个点。 例: >> fhnd=@(x)(exp(-x).*sin(x))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值