• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

matlab 函数句柄

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

函数句柄的创建和观察

      函数句柄并不是伴随函数文件而自动形成的文件“属性”。它必须通过专门的定义才会生成。为一个函数定义句柄的方法有两种:或利用 @ 符号,或利用转换函数str2func。对函数句柄的内涵观察需借助专门指令functions 实现。

为MATLAB的“内建”函数创建函数句柄,并观察其内涵。

(1)创建

hsin=@sin 

(2)类型判别

class(hsin)

size(hsin)  

(3)借助指令functions观察内涵

CC=functions(hsin)   

〖说明〗

l  指令hsin=@sin 的功能,可以用hsin=str2func(\'sin\') 替代。

在创建一个函数句柄时,只有那函数正处在“视野Scope”内,此创建的函数句柄才是有效的。

所谓视野:在当前目录下,指令help, lookfor 搜索函数的范围。

l  定义函数句柄时,所指定的函数名不应包括“路径信息”,也不应包括扩展名。函数名最多只能包括63个字符。

 

函数句柄的基本用法

      本节介绍:如何通过函数句柄执行相应函数的计算。假设,一个函数的调用格式为

[argout1, …, argoutn]=FunName(argin1, …, arginn)

又假设该函数的句柄Hfun已经存在,那么通过函数句柄实现函数运算的调用格式是:

[argout1, …, argoutn]=feval(Hfun,argin1, …, arginn)

〖说明〗

l  不管名为FunName的函数文件是否在当前搜索路径上,不管它是否在当前视野内,不管它是否子函数或私用函数,只要句柄Hfun已经被有效创建,那末它代表的函数总能被正确地执行。

l  在FunName存在重载函数时,借助句柄Hfun 的计算总能被“恰当地”执行。也就是说,它也会根据待计算的数据类型,从其包含的所有重载函数中选择相应的函数文件执行运算。

l  在不使用函数句柄的情况下,对 FunName 进行多次调用时,每次都要为该函数进行全面的路径搜索,这直接影响计算速度。借助Hfun可完全克服这种无谓的时间消耗。

【例6.6-2】本例通过sin函数及其句柄演示若干基本用法。

(1)函数句柄的创建

fhandle=str2func(\'sin\'); 

(2)函数句柄在“数值计算”中的情况

ys=sin(pi/4)             %函数直接调用

yfold=feval(\'sin\',pi/4)     %feval指令的“老式”调用

yfnew=feval(fhandle,pi/4) %feval指令的“新式”调用 

查看是否存在文件:

which(\'function_name\')  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
DelphiCreateMutex防止程序多次运行发布时间:2022-07-18
下一篇:
delphi 常用属性,方法发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap