Maltab 句柄处理(Eval, Feval, @)

本文探讨了在数据处理中使用feval、str2func和eval三种方法来处理数学函数,通过实例展示了如何灵活运用这些工具提高代码效率,并强调了在处理多个函数时使用这些方法的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. feval:  
  2.   
  3. funcList = {'sin','cos','tan'};  
  4. for i=1:numel(funcList)  
  5.     f = feval(funcList{i},1.0);  
  6. end  


[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. funcList = {'sin','cos','tan'};  
  2. for i= 1:numel(funcList)  
  3.    fh = str2func(funcList{i});  
  4.    f = fh(1.0);  
  5. end  


[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. funcList = {@sin, @cos, @tan};  
  2. for i = 1:numel(funcList)  
  3.    f = funcList{i}(1.0);  
  4. end  


[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. eval :  
  2.   
  3. funcList = {'sin','cos','tan'};  
  4. for i=1:numel(funcList)  
  5.     func = eval(['@' funcList{i}]);  
  6.     f = func(1.0)  
  7. end  

验证结果是一样的。。。。



虽然是简单的三个句柄, 但是很少有人用的很活,这个很重要。
三种快速处理数据的方法, 这只是一种方法,可以利用这些功能做更多的运算,而且效率会很高。



为什么要用feval

用feval而不直接调用函数,是为了节省代码量,如果函数个数不止三个,将每个函数都显式地执行一遍,代码是十分繁琐的,不简洁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值