feval,str2func

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

需求

我们有一个字符串A,而A实际是一个函数名或类名,我们想要执行函数A(),或新建一个A对象。

what

[y1,...,yN] = feval(fun,x1,...,xM)
fun为函数名或句柄,X1……XM为该函数的参数,y1……yN为该函数的返回值。feval执行该函数,返回结果。

code

  • 执行函数
>> A='round';
>> feval(A,pi)
ans =
     3
  • 执行类,新建对象
    qubit.m
classdef qubit
    properties
        type;
    end
end
>> B='qubit';
>> res=feval(B)
res = 
  qubit (具有属性):
    type: []

扩展

还有其他的方法来满足这个需求?如下:利用str2func()
fh = str2func(c)
str2func将字符串c转换为函数句柄。比如上面的两例:

>> A='round';
>> r=str2func(A)

r =

  包含以下值的 function_handle:

    @round

>> r(pi)

ans =

     3
>> B='qubit';
>> r=str2func(B)

r =

  包含以下值的 function_handle:

    @qubit

>> r()

ans = 

  qubit (具有属性):

    type: []
MATLAB零基础入门:函数(3) 第二个调用传递相同的函数句柄和一个错误数据类型的数据,这次round函数运行失败,catcherr函数显示一则出错信息,其中显示了失败函数的名称。fminbnd函数feval函数处理@humps函数句柄,下面是fminbnd M文件的一小部分,第一行中,funfcn输入参数接收传入的函数句柄@humps的第113行中的feval函数处理句柄。【例3-27】如果传递参数中的函数名字符串,接收该变量的函数能将函数名转换为使用str2func函数句柄,下面先传递一个参数funcname给函数 阅读详情

相关推荐

Matlab:函数句柄应用实例

’) 将返回一个函数句柄,该函数对应于字符串’func_name(arg1, arg2, …inline函数用于创建一个内联函数,这个函数可以将一个表达式转换为函数句柄。) 将返回一个函数句柄,该函数对应于表达式expr所表示的函数,并且接受arg1、arg2等输入参数。具体来说,function_handle(‘func_name’) 将返回一个函数句柄,该函数对应于字符串’func_name’所命名的函数。以上四个函数都是与函数句柄有关的函数,在MATLAB中应用广泛。

PixelNovaO的博客 215

函数句柄的理解

觉得自己很少用函数句柄,但是经常遇到,所以在这里总结一下。 函数句柄:是包含了函数的路径、函数名、类型以及可能存在的重载方法。 函数句柄必须通过专门的定义创建的,而一般的图像的句柄是自动建立的。 创建函数句柄使用@或者str2func命令创建 [email=h_fun=@fun]h_fun=@fun[/email]; h_fun=str2func('fun'); 比如说sin函数,[e...

MartinDong 3890

Matlab中str2func函数的使用

str2func函数是根据字符向量构造函数句柄。 语法 fh = str2func(str) 说明 fh = str2func(str)根据函数名称或匿名函数的文本表示来构造函数句柄fh。 使用str2func创建的函数句柄不具备对其局部工作区外部的变量或嵌套函数的访问权限。如果的函数句柄包含这些变量或函数,则当您调用该句柄时,MATLAB®会引发错误。而且,如果使用匿名函数的文本表示形式,则生成的函数句柄也不具备对私有函数或局部函数的访问权限。 示例 将字符向量转...

jk_101的博客 3955

matlab中str2func函数,MATLAB 的函数句柄

MATLAB 的函数句柄:1、何为函数句柄?函数句柄也是MATLAB中的一种常见的数据类型,它的地位类似于其它计算机语言里的函数对象(Javascript,Python),函数指针(C++),或者函数引用(Perl)。它的作用是将一个函数封装成一个变量,使其能够像其它变量一样在程序的不同部分传递。。引入函数句柄可使函数调用变得更加灵活方便,极大地提高了函数调用的速度和效率。MATLAB中函数句柄的...

weixin_30470785的博客 1920

matlab中str2func函数,Matlab关于函数的定义

下面是一个M文件的例题,我想用GUI界面来做,结果出错了,麻烦大家帮我看以下!function varargout = exercise01(varargin)% EXERCISE01 M-file for exercise01.fig% EXERCISE01, by itself, creates a new EXERCISE01 or raises the existing% ...

weixin_42519826的博客 486

matlab中str2func函数,matlab中所有函数解析_太全了

A aabs 绝对值, 模acos 反余弦acosh 反双曲余弦acot 反余切acoth 反双曲余切acsc 反余割acsch 反双曲余割all 所有元素均非零则为真alpha 透明控制angle 相角ans 最新表达式的运算结果any 有非零元则为真area 面域图asec 反正割asech 反双曲正割asin 反正弦asinh 反双曲正弦atan 反正切atan2 四象限反正切atanh 反...

weixin_42352351的博客 445

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

feval:      funcList = {'sin','cos','tan'};   for i=1:numel(funcList)       f = feval(funcList{i},1.0);   end   [cpp] view plaincopy funcList = {'sin','cos','tan'}; 

jideljd_2010的专栏 855

MATLAB函数专题——基础篇

探讨关于matlab函数相关的基础知识

xiaoshitou330的博客 1042

matlab 函数句柄

函数句柄的创建和观察 函数句柄并不是伴随函数文件而自动形成的文件“属性”。它必须通过专门的定义才会生成。为一个函数定义句柄的方法有两种:或利用 @ 符号,或利用转换函数str2func。对函数句柄的内涵观察需借助专门指令functions 实现。 为MATLAB的“内建”函数创建函数句柄,并观察其内涵。 (1)创建 hsin=@sin (2)类型判别 class...

aixing8765的专栏 375

MATLAB总结二

1、如何将一个多项式中的系数按照幂次提取出来? sym2poly(ans) %ans为一个多项式。 2、在写第二份模式识别的大作业时遇到如下困难: 每个样本贡献给总概率的是一个关于x的表达式,我将所有的样本的关于x的表达式都给加起来,就得到关于x的一个总的表达式,设为y。 在函数运行过程中,你并不知道这个y表示的到底是个什么函数。 但是,我需要把x赋上一系列的值,从而得到关于函数值...

weixin_34309435的博客 508

matlab数据类型三(函数句柄)

创建函数句柄:两种方法---使用@、使用函数str2func 1.使用@:hndl=@functionname,@表示将函数function赋值给函数句柄hndl 2.hndl=str2func('functionname') 使用方法:创建函数m文件--创建函数句柄--调用函数句柄 当函数没有输入参数时,则调用函数句柄时参数部分输入空括号: >> h2=@rand; >> h2

gtx_tt的博客 1082

str2func

函数句柄:是包含了函数的路径、函数名、类型以及可能存在的重载方法。 函数句柄必须通过专门的定义创建的,而一般的图像的句柄是自动建立的。 创建函数句柄使用@或者str2func命令创建 [email=h_fun=@fun]h_fun=@fun[/email]; h_fun=str2func('fun'); 比如说sin函数, [email=h_sin=@sin]h_sin=@si

仰望星空的麦兜 3264

CEC2017 benchmark function调用接口

CEC2017 benchmark function可以从这里下载。 导师最近给了个课题让我自己研究,跟智能优化算法相关的,必不可免的要用到最新的CEC2017 benchmark function,然而 笔者着实踩了很多坑,第一步编译都差点跪了。 坑一:abs 如果你下载了上面的CEC2017 benchmark function,并试着按照它的指示在matlab窗口运行mex cec17_fu...

weixin_30699465的博客 4200

matlab 函数句柄求导,Matlab_learning_4( 函数句柄 )

含数句柄是MATLAB 6之后特有的语言结构;优点:方便函数之间互相调用,兼容函数加载;拓宽子函数包括局部函数的适用范围;减少程序设计之中的冗余;提高重复执行的效率;数组、结构数组、细胞型数组能够结合定义数据;||定义函数句柄:在提示符@后添加 -自定义函数名-比如:func_Sure=@Sure||函数句柄的内容:通过 -函数function- 显示,使用 -函数faval- 调用比如:feva...

weixin_29306571的博客 1227

MCP + MATLAB自动化建模实战

搭建MCP详细步骤,实现基于copilot进行自动simulink建模

weixin_41860904的博客 167

MATLAB与Python打包陷阱全解析:从依赖管理到环境部署的实战避坑指南

在软件开发中,依赖管理是确保代码在不同环境中稳定运行的基础。它涉及对项目所需库、工具和运行时的声明、版本控制和解析,其核心原理是通过配置文件(如MATLAB的.prj文件、Python的pyproject.toml)明确指定依赖关系,构建工具据此在目标环境中复现一致的运行上下文。良好的依赖管理技术价值在于实现环境隔离、构建可重复性,并从根本上避免“依赖地狱”和版本冲突。其应用场景广泛,从个人脚本分享到企业级应用分发,再到持续集成流水线,都离不开对依赖的精确控制。本文聚焦于MATLAB Toolbox和Pyt

weixin_33834628的博客 464
上一篇: matlab:nargin,varargin,varargout
下一篇: metaclass
一从际发
博客等级 码龄12年 103粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值