找回密码
 注册
关于网站域名变更的通知
查看: 438|回复: 0
打印 上一主题 下一主题

Matlab函数句柄, 匿名函数 与 inline 函数

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-24 13:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
函数句柄变量不仅可以用来表示数值(如: 1, 0.2, -5), 用来表示字符串(如: 't', 'casino'), 也可以用来表示函数哦. 当然, 你也看到了前面我们提到的函数都是一个一个的文件, 直接塞到一个变量里面似乎太大, 不过我们可以'提纲挈领', 抓住函数的handle(句柄), 就可以.
. f" A% `/ g: u将函数句柄赋值给变量要用到@符号, 语法: 变量名=@函数名, 此处地函数名可以是当前Matlab中可以使用的任意函数 例如: mysin=@sin, 此后mysin就和sin同样地使用, mysin(pi)和sin(pi)的含义相同.
匿名函数这是函数句柄的一种高级用法, 这样产生的函数句柄变量不指向特定的函数, 而是一个函数表达式. 其语法:变量名=@(输入参数列表)运算表达式( A1 v' @9 G$ e; [" N- z$ d4 g
例如, 前面那个计算变量平方的函数可以简单地写为这个匿名函数:mysqr1=@(x)x.*x9 v- l/ f( ]6 }( w
之后, 执行mysqr1(变量名), 即可计算该变量的平方, 注意, mysqr1属性是函数句柄变量, 而不是这个表达式; 还有要注意这个表达式不需要用单引号括起来.
inline 函数inline函数不是函数句柄, 是另外一种类型, 它也可以用变量来表示函数, 用法也和一般函数, 函数句柄是一样的. 定义inline函数的语法:变量名=inline('函数表达式', '变量名1','变量名2', ... ,'变量名n')
# \) J2 F' \: L8 u% ^+ |当然啦, 如果是常见变量名, 如x, y, 等, 后面那个变量名列表可以省略(不建议为了偷懒这么做, 因为容易引起混乱). inline语句得到的变量类型比较特别, 是'inline object'. . {: O; a% d7 P( Y+ @
举例依旧是计算变量的平方, 用inline的方法可以这么做:
/ A5 _) Z7 D( Z: {: s* Zmysqr2=inline('x.*x','x');* Y) G2 ^$ C9 m3 z0 s0 ^: j

1 p/ V; j0 Y/ r$ h. G定义完mysqr2后, 可以用: mysqr2(3), 计算3的平方.5 T# d+ y0 h* L4 g& V7 T$ o& t
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-24 08:57 , Processed in 0.078125 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表