matlab 中的内联函数、匿名函数和函数函数

内联函数

>> f = inline('x^2 + y^3')
f =
     内联函数:
     f(x,y) = x^2+y^3
>> f(2, 3)
31

其实

inline('x^2+y^3')
等价于
inline('x^2+y^3', 'x', 'y')
        % 后续可变参数标识参数列表

匿名函数

语法结构为:

fhandle=@(arglist) expression
>> f = @(x, y) x^2 + y^3
f = 
    @(x,y)x^2+y^3
>> f(2, 3)
31

匿名函数甚至支持多个输出:

>> f = @(x) [(x-1)^2 2*(x-1)]
>> f(0)
ans =

     1     2

函数函数

函数函数(function function)是对传入的其他函数进行操作的函数,传入的函数作为函数函数的输入参数。传入到函数函数中的函数称为传递函数(Passed function),事实上MATLAB中就有许多这样的函数,例如求解常微分方程的函数ode23、ode45、ode113等都是函数函数,他们的第一个参数都是传递函数。

绘制 [π,π] 上正弦图形:

>> fplot(@(x) sin(x), [-pi, pi])

或者简化为:

>> fplot(@sin, [-pi, pi])

关于fplot一种稍微复杂点的用法为:

>> fplot(@sin, [-pi, pi, -.5, .5], 2e-2, 10, '-.o')
  • [-pi, pi, -.5, .5]:分别表示 xmin, xmax, ymin, ymax
  • 2e-2(<1):表示 tol,容许的误差,意味着步长。越小,则区间需切分得越细,精度要求得越高
  • 10(>= 1):表示最小点数
>> fplot(@sin, [-pi, pi], -.5, 10, '-.or')
>> fplot(@sin, [-pi, pi], -.5, '-.or')

函数式编程的典范应当是:feval,

>> feval(@(x, y) sin(x)+cos(y), -5:.01:5, -5:.01:5)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值