首页 > 其他分享 >MATLAB 函数句柄Function handle的用法

MATLAB 函数句柄Function handle的用法

时间:2023-12-17 13:55:34浏览次数:36  
标签:Function f1 handle 函数 句柄 ftest MATLAB x1

函数句柄的作用是可以把函数句柄直接设置为参数然后执行 

 

函数句柄(Function handle)是MATLAB的一种数据类型。引入函数句柄是为了使feval及借助于它的泛函指令工作更可靠;使“函数调用”像“变量调用”一样方便灵活;提高函数调用速度,特别在反复调用情况下更显效率;提高软件重用性,扩大子函数和私用函数的可调用范围;迅速获得同名重载函数的位置、类型信息。

       MATLAB中函数句柄的使用使得函数也可以成为输入变量,并且能很方便的调用,提高函数的可用性和独立性。

       例如:

       新建M文件f1.m

function y=f1(X)

x1=X(1);x2=X(2);
y=x1^2+x1*x2;

       新建M文件ftest.m

function Y=ftest(f,X)

syms x1 x2;
F=f([x1,x2]);
v=[x1,x2];
grad=jacobian(F,v);
Y=subs(grad,v,X);

       在MATLAB命令窗口输入Y=ftest(@f1,[2,1]),得到结果:

Y =

     5     2

    此处@f1即为函数f1的句柄,可以用class(@f1)判断变量的类型,得到ans = function_handle即函数句柄。函数ftest是求一个二维函数在指定点的梯度值。我们可以替换目标函数为f2或其他函数同样可以求得梯度。这样函数ftest就可以适用于任何二维函数而不必做改动了。

标签:Function,f1,handle,函数,句柄,ftest,MATLAB,x1
From: https://www.cnblogs.com/liylllove/p/17909004.html

相关文章

  • nodejs使用sequelize vscode报错:Type 'Model<any, any, any>' is not a constructor f
    我的模型定义如下:import{Model,DataTypes}from"sequelize";//定义资源模型classRuleextendsModel{}问题:vscdoe报错:Type'Model<any,any,any>'isnotaconstructorfunctiontype.解决:这个问题可能是由于TypeScript类型定义的问题导致的。Model 是Seq......
  • 《Java编程思想第四版》学习笔记47--关于handleEvent
    (4)增加可以被handleEvent()方法测试事件的组件到练习3中。过载handleEvent()并在文字字段中为每个组件显示特定的消息。                                                ......
  • Unhandled exception. System.IO.IOException: The configured user limit (128) on t
    现象:Unhandledexception.System.IO.IOException:Theconfigureduserlimit(128)onthenumberofinotifyinstanceshasbeenreached,ortheper-processlimitonthenumberofopenfiledescriptorshasbeenreached.atSystem.IO.FileSystemWatcher.StartRaisi......
  • 《Function Programming in C++》
    说明《FunctionalProgramminginC++》书中代码练习测试以及一些笔记,部分代码需要用到C++20可以使用在线编译器编译代码地址:https://coliru.stacked-crooked.com/或者自己编译gcc-11.2及以上版本安装1介绍1.1什么是函数式编程用常用的函数范式模板代替一些循环等,比如std......
  • MyBatis-Plus 自定义 TypeHandler 映射JSON类型为List
    1在mysql5.7支持json类型,那么在表实体是怎么运用的在mybatis-plus中有相关的handler/***Jackson实现JSON字段类型处理器**@authorhubin*@since2019-08-25*/@Slf4j@MappedTypes({Object.class})@MappedJdbcTypes(JdbcType.VARCHAR)publicclassJackso......
  • Mybatis Plus 自定义 TypeHandler
    在MyBatisPlus中,可以自定义TypeHandler来处理特殊的类型转换。下面是如何自定义一个TypeHandler的步骤:我们需要创建一个实现org.apache.ibatis.type.TypeHandler接口的类。这个类需要实现以下几个方法:setParameter(PreparedStatementps,inti,Tparameter,JdbcTypejdbc......
  • LOEUF (the loss-of-function observed/expected upper bound fraction) 和 pLI (prob
    LOEUF(theloss-of-functionobserved/expectedupperboundfraction):LOEUFisaconservativeestimateofevolutionaryselectionagainstdisease-causingvariantsbasedontheupperlimitoftheconfidenceintervalfortheobserved/expectedpLoFmutationra......
  • java的unsafe类和varhandle类
    1、如何从unsafe类获取对象privateUnsafe(){}@CallerSensitivepublicstaticUnsafegetUnsafe(){Class<?>caller=Reflection.getCallerClass();if(!VM.isSystemDomainLoader(caller.getClassLoader())){thrownewSecurityException("Unsafe&quo......
  • 从面试官角度看Handler:掌握技巧,事半功倍!
    引言在Android开发领域,Handler是一项关键技能,尤其在面试中,对Handler的深刻理解和熟练运用往往是衡量一位Android开发者水平的重要标志。本文将从面试官的角度出发,针对AndroidHandler技术展开详细的解析,深入剖析高级疑难问题,帮助读者更好地准备面试。Handler的基本概念问题:请解释Ha......
  • Spring MVC 源码 - HandlerAdapter 组件(二)之 ServletInvocableHandlerMethod
    HandlerAdapter组件HandlerAdapter组件,处理器的适配器。因为处理器handler的类型是Object类型,需要有一个调用者来实现handler是怎么被执行。Spring中的处理器的实现多变,比如用户的处理器可以实现Controller接口或者HttpRequestHandler接口,也可以用@RequestMapping注......