一起来学matlab-matlab学习笔记13函数

13_3 创建函数句柄

觉得有用的话,欢迎一起讨论相互学习~

参考文献
https://ww2.mathworks.cn/help/matlab/matlab_prog/creating-a-function-handle.html

可以为已命名函数和匿名函数创建函数句柄。可以将多个函数句柄存储在数组中,保存并加载它们,方法与对任何其他变量一样。

什么是函数句柄

函数句柄是一种存储指向函数的关联关系的 MATLAB® 数据类型。 间接调用函数使在调用该函数时无需考虑调用位置。 函数句柄的典型用法包括:

  1. 将一个函数传递到另一个函数(通常称为功能函数)。例如,将函数传递到 integral 和 fzero 等积分和优化函数。

  2. 指定回调函数。例如,响应 UI 事件或与数据采集硬件交互的回调。

  3. 构造以内联方式定义而非存储在程序文件(匿名函数)中的函数的句柄。

  4. 从主函数外调用局部函数。

  • 可以使用 isa(h,‘function_handle’) 来查看变量 h 是否为函数句柄。

创建函数句柄

  • 通过在函数名称前添加一个 @ 符号来为函数创建句柄。例如,如果有一个名为 myfunction 的函数,f = @myfunction; .
  • 使用句柄调用函数的方式和直接调用函数一样
function y = computeSquare(x)
y = x.^2;
end
创建句柄并调用该函数以计算 4 的平方。f = @computeSquare;
a = 4;
b = f(a)
b =16
  • 如果该函数不需要任何输入参数,使用空括号,而不能直接调用函数名
h = @ones;
a = h()
a =1
如果不使用括号,则该赋值会创建另一个函数句柄。a = h
a =@ones
  • 函数句柄是可以传递给其他函数的变量,例如:q = integral(f,0,1);
  • 函数句柄会存储其绝对路径,因此有效句柄可以从任意位置调用该函数。不必在创建句柄时指定函数路径,只需指定函数名。

注意

  • 名称长度 - 函数名称(包括包名称和类名称)的每个部分都必须小于 namelengthmax 指定的数值。否则 MATLAB 会截断该名称的后面一部分。

  • 范围 - 在您创建句柄时,该函数必须处于范围内。因此,该函数必须在 MATLAB 路径上或位于当前文件夹中。或者,对于局部或嵌套函数句柄,这些函数必须位于当前文件中。

  • 优先级 - 当多个函数采用同一名称时,MATLAB 会使用与调用函数相同的优先级规则来定义函数句柄。

  • 重载 - 如果指定的函数在非基础 MATLAB 类的类中重载函数,那么在构造该函数的句柄时,函数不会与该函数句柄关联。相反,MATLAB 会考虑输入参数并在计算时确定要调用的实现。

匿名函数

  • 创建一个指向用于计算平方数的匿名函数的句柄 sqr,并使用其句柄调用该匿名函数
sqr = @(n) n.^2;
x = sqr(3)
x =9

由函数句柄组成的数组

  • 您可以通过将函数句柄收集到一个元胞数组或结构体数组中,来创建由这些函数句柄组成的数组。例如,使用元胞数组:
C = {@sin, @cos, @tan};
C{2}(pi)
ans =-1
或使用结构体数组:S.a = @sin;  S.b = @cos;  S.c = @tan;
S.a(pi/2)
ans =1

保存和加载函数句柄

  • 可以在 MATLAB 中保存和加载函数句柄,就像处理任何其他变量一样。换言之,使用 save 和 load 函数。如果您保存函数句柄,则 MATLAB 不会保存路径信息。如果加载函数句柄,并且函数文件不再位于该路径上,则该句柄无效。如果文件位置或文件名在您创建句柄后进行了更改,则该句柄将变得无效。如果句柄无效,MATLAB 可能会在您加载文件时显示警告。当调用无效句柄时,MATLAB 将引发错误。

matlab学习笔记13_3创建函数句柄相关推荐

  1. matlab学习笔记之——符号函数应该怎么作图?

    如何用符号函数来做图 最近在学习使用符号函数,在此过程中遇到了许多问题,尤其是我不太清楚应该用什么函数来画符号函数的图.之后我问了我的老师,也看了很多博文,总结了一些符号函数画图的方法,希望可以帮到大 ...

  2. Matlab学习笔记(数学函数)一

    最近一直再看matlab5手册,写一些作为学习笔记. 一些常用的数学函数: clc; x=1.7 y1=abs(x)%绝对值 sign(x)%x的符号,正1.负-1,零0 sqrt(x)%根号 pow ...

  3. matlab中的pause是什么意思,【Matlab学习笔记】【函数学习】一(延时函数pause)...

    采用MATLAB中的延时函数pause: Halt execution temporarily 使用方法: pause pause(n) pause on pause off 函数描述: pause, ...

  4. Matlab学习笔记 figure函数

    Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...

  5. linspace函数matlab_从零开始的matlab学习笔记——(29)泰勒逼近函数

    matlab应用--求极限,求导,求积分,解方程,概率统计,函数绘图,三维图像,拟合函数,动态图....更多内容尽在个人专栏:matlab学习 上一节我们成功制作了能自己转圈的三维螺旋线,这里我们再来 ...

  6. matlab数组平方的计算自定义函数_从零开始的matlab学习笔记——(38)简单数论计算函数:取整,gcd,lcm,质数,全排列...

    matlab应用--求极限,求导,求积分,解方程,概率统计,函数绘图,三维图像,拟合函数,动态图,傅里叶变换,随机数,优化问题....更多内容尽在个人专栏:matlab学习 翻了翻优化工具箱,发现内容 ...

  7. Matlab中创建函数句柄

    目录 创建函数句柄 什么是函数句柄? 创建函数句柄 匿名函数 由函数句柄组成的数组 保存和加载函数句柄 创建函数句柄 可以为已命名函数和匿名函数创建函数句柄.可以将多个函数句柄存储在数组中,保存并加载 ...

  8. MATLAB学习笔记(一)

    MATLAB 一.安装的目录结构 二.常用的菜单及工具 布局 设置路径 设置工作路径 三.常用命令 四. 基础知识 数据类型 复数类型 `inf 和 NaN` 字符与字符串 函数句柄 结构体 结构体的 ...

  9. MATLAB学习笔记——二维和三维绘图

    MATLAB学习笔记--二维和三维绘图 近期练习matlab的二维和三维绘图,整理一下,以防忘记. 文章目录 MATLAB学习笔记--二维和三维绘图 一.二维绘图 1.plot命令 2.fplot 命 ...

最新文章

  1. make file教程(转)
  2. python 堆_40道Python经典面试题(附答案)
  3. 第三章 汇编语言和汇编软件
  4. 一种PLC RS485 Modbus RTU无线联网的解决方案
  5. MySQL 连接报错:mysql access denied for user@ip
  6. 不狂热不忧虑:观看波士顿动力机器人视频的正确姿势
  7. DevOps运维开发一体化
  8. ipad文件管理怎么添加服务器,ipad怎样建文件夹
  9. 阿里云CentOS 7.4 使用Flask建站
  10. 【飞行器】基于matlab多源信息融合算法多旋翼无人机组合导航系统【含Matlab源码 1267期】
  11. ARM各内核系列整型运算能力对比---DMIPS / MHz
  12. WebQQ3.0体验
  13. 2022年全国计算机二级Access数据库程序设计模拟试题及答案
  14. flutter文字设置渐变色
  15. MacBook的分屏
  16. i7 12650h参数 酷睿i712650h属于什么档次
  17. 微软与索尼赋能计划已启动,旨共同创造新技术生态系统
  18. 我是一个*** (二)
  19. java放大缩小_如何用Java实现图形的放大和缩小?
  20. 干货分享——产品经理必备的技能:专业技能和软技能。

热门文章

  1. 2016.10.14,英语,《American Accent Training》
  2. java uml类图举例_UML类图介绍
  3. 图片情感分析(2):图像情感分析模型
  4. 物联卡停用和停机有什么区别
  5. enum枚举构造函数
  6. 评张逸的“状态和事件本质相同”(上)-DDD话语批评之一
  7. Win10系统通过VMware安装Centos7,部署KVM安装WIN7虚拟机
  8. 华为智慧屏x1是鸿蒙系统吗,华为智慧屏s系列和荣耀智慧屏x1哪个好?
  9. 笔记--Python拼接图片(M * N)
  10. AndroidStudio手机开发——校园广告APP