matlab str2func,Matlab中@的用法

本文介绍了MATLAB中的函数句柄和匿名函数,包括@符号的用途。函数句柄允许通过名称调用函数,而匿名函数则提供了一种创建简短函数表达式的方式。举例说明了如何使用ezplot和fplot结合函数句柄绘制函数图形,以及如何利用fzero寻找函数零点。@符号在创建匿名函数时用于表示函数句柄,简化了复杂操作的实现。
摘要由CSDN通过智能技术生成

@是个操作符,叫匿名函数操作符,这个符号很有用。

想详细了解这个,你在Command Window下输入 help @

就弹出很多的帮助资料,然后你点关于@的这行

punct - Function handle creation @

点开,有以下信息

@ At. The at symbol is used to create a function_handle.

It is also used at the beginning of directory names that contain

matlab object methods and the constructor for the object, e.g.

the directory @inline contains the constructor inline.m for the

inline object and all methods for inline objects.

所以你要去了解Function handle函数句柄。

于是你就help function_handle 注意有个下划线,简单地说函数句柄代表这个函数的名字,通过这个句柄你可以调用这个函数,让调用函数的操作异常简单,这个是MATLAB的神奇之处。我举个小例子,比如,在Command Window下输入以下

ezplot(@sin)

它就可以把sin函数画出来,可能现在你不是很理解这个,但你应该能体会到这个操作的强大。(你自己操作一遍就会有直观感受)

将函数句柄赋值给变量要用到@符号,

变量不仅可以用来表示数值(如: 1, 0.2, -5), 用来表示字符串(如: 't', 'casino'), 也可以用来表示函数哦. 当然, 你也看到了前面我们提到的函数都是一个一个的文件, 直接塞到一个变量里面似乎太大, 不过我们可以'提纲挈领', 抓住函数的handle(句柄), 就可以.

将函数句柄赋值给变量要用到@符号,

语法:变量名=@函数名,或者, handlef=str2func(变量名)

此处的函数名可以是当前Matlab中可以使用的任意函数 例如: mysin=@sin, 此后mysin就和sin同样地使用, mysin(pi)和sin(pi)的含义相同.

punct - Function handle creation @

@ 在匿名函数中表示函数句柄

例如ln(x),在matlab中是没有定义的,正确表示是log(x);

但如果要直观表示自然对数,意义用以下语句表示:

ln=@(x) log(x);

执行后,ln(4)=log(4) , 即用ln 替换 log。

以上表示可能无法看出‘@’的好处,再看下例:

poly6 = @(x) 8*x.^6+6*x.^5+3*x.^3+x.^2+x+520;

fplot(ploy6,[0,100]);

fzero(ploy6,13);

在这种长且多次调用的情况下,用函数句柄就可以方便很多。

函数句柄

匿名函数

这是函数句柄的一种高级用法, 这样产生的函数句柄变量不指向特定的函数, 而是一个函数表达式. 其语法:

变量名=@(输入参数列表)运算表达式

例如, 前面那个计算变量平方的函数可以简单地写为这个匿名函数:

mysqr1=@(x)x.*x

之后, 执行mysqr1(变量名), 即可计算该变量的平方, 注意, mysqr1属性是函数句柄变量, 而不是这个表达式; 还有要注意这个表达式不需要用单引号括起来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值