今天杰哥给大家介绍一下函数句柄的详细知识。

首先我们先看一个问题:表示什么意思呢?其中的@代表什么呢?
我们来揭晓一下答案:

f是函数句柄;@是定义句柄的运算符;相当于建立了一个函数文件:

% 建立函数文件f.m
function y=f(x)
y=cos(x);

再给大家举个例子:

则相当于建立了一个函数文件:

%建立xsqual函数
function y=xsqual(x)
y=x^2+2*x+1;

我们再做一个详细说明:

1、函数句柄function_handle(@):是一种间接调用函数的方式。
2、语法:handle=@functionname  or handle=@(arglist)anonymous_function
3、描述:函数句柄(function handle)是一种能够提供函数间接调用的matlab value。我们可以通过传递句柄来调用各种其他功能。你也可以将句柄存储到数据结构中备用(例如Handle Graphic 回调)。句柄是matlab的标准数据类型之一。
      当创建句柄时,你所指定的函数必须在matlab搜索路径之中,并且必须在创建语句的scope之中。例如,只要在定义子函数的文件之中,我们就可以为这个子函数创建句柄。这些条件不适用于evaluate函数句柄。例如,你可以在一个单独(out-scope)通过句柄执行一个子函数,这要求句柄是在in-scope创建的。

举例说明:
       handle=@(arglist)anonymous_function用来创建匿名函数(anonymous function)并返回该匿名函数的句柄。其中:括号右边的函数体是单个的matlab语句(statement)或者matlab命令;arglist是一个用逗号“,”分隔的输入变量列表;该函数通过句柄handle执行。
备注:函数句柄是标准的matlab数据类型。因此,你可以像matlab其他数据类型一样进行操作。

4、函数句柄的好处
       ①提高运行速度。因为matlab对函数的调用每次都是要搜索所有的路径,从set path中我们可以看到,路径是非常的多的,所以如果一个函数在你的程序中需要经常用到的话,使用函数句柄,对运行速度会有所提高。
       ②使用可以与变量一样方便。比如说,我在这个目录运行后,创建了本目录的一个函数句柄,当我转到其他的目录下的时候,创建的函数句柄还是可以直接调用的,而不需要把那个函数文件拷贝过来。因为你创建的function handles中,已经包含了路径。

Matlab中函数句柄总结复盘(一)相关推荐

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

    MATLAB 的函数句柄: 1.何为函数句柄? 函数句柄也是MATLAB中的一种常见的数据类型, 它的地位类似于其它计算机语言里的函数对象(Javascript,Python),函数指针(C++),或 ...

  2. matlab 定义string_[整理]Matlab中函数定义方法

    Matlab中函数定义方法 Matlab自定义函数的六种方法 n1.函数文件+调用函数(命令)文件:需单独定义一个自定义函数的M文件: n2.函数文件+子函数:定义一个具有多个自定义函数的M文件: n ...

  3. MATLAB中函数find的使用方法概述,简单易懂+例子

    MATLAB中函数find的使用方法总结+探索,简单易懂+例子 该函数不仅可以查找矩阵获这向量中的非零元素的位置,也可以查询满足一定逻辑条件的元素位置. find函数总共的适用方法 index = f ...

  4. MatLab中函数图形的绘制

    原文地址为: MatLab中函数图形的绘制 在MatLab中绘制函数图形,可以使用Plot函数,下面使用该函数绘制二次函数曲线. x=[-5:0.1:5]; y=x.^2; %注意这里必须使用点乘. ...

  5. 【MATLAB】函数句柄

    在MATLAB平台中,对函数的调用方法分为直接调用法和间接调用法. 1.直接调用函数,被调用的函数通常称为子函数.一个文件中只能有一个主函数. 2.函数句柄--提供一种间接调用函数的方法.创建函数句柄 ...

  6. matlab 子函数句柄,matlab-函数句柄程序.ppt

    匿名函数可以使用工作空间的变量例如创建函数f(x,y)=x^2+y^3 >> p=2; >> q=3; >> f=@(x,y) x^p+y^q f = @(x,y ...

  7. Matlab利用函数句柄实现函数嵌套

    作为基础不牢固的小白,今天写Matlab程序时遇到这个错: Undefined function 'mrdivide' for input arguments of type 'function_ha ...

  8. MATLAB的函数句柄

    在MATLAB中,函数调用分为直接调用与间接调用 一.直接调用 被调用的函数通常被称为子函数,子函数只能与M文件同名的主函数或被M文件中的其他函数调用,同时在一个文件中只能有一个主函数. 二.间接调用 ...

  9. MATLAB 的函数句柄的使用方式

    函数句柄MATLAB的数据类型,包含用于引用函数的信息.使用函数句柄的主要优点是可以在调用中把函数句柄作为参数传递给另一个函数. 函数句柄主要有两种不同的类型.第一种函数句柄类型是命名的函数句柄,也称 ...

最新文章

  1. 实验室管理系统LIMS有没有好的企业推荐?
  2. logback不同业务的日志打印到不同文件
  3. 下载达 10 万次的 IDEA 插件,K8s 一键部署了解一下?
  4. Php中方法作用域,PHP 函数(下):匿名函数和作用域
  5. 每天学一点儿shell:猜数字游戏
  6. QT的QClipboard类的使用
  7. php 网络图片 转本地,PHP将Base64图片转换为本地图片并保存
  8. windows游戏编程_2020年适合程序员编程的笔记本电脑推荐
  9. python特效电子相册_用Python和Conky做个电子相册,美化你的Linux桌面
  10. python趣味编程100例-Python趣味编程与精彩实例,码高少儿编程 编
  11. 【接口测试】FitNesse中文指南
  12. mysql etimedout_Node.js获取请求ETIMEDOUT和ESOCKETTIMEDOUT
  13. Android通知栏-Notification(通知消息)
  14. 菜鸟IT技术杂谈(一)——从多任务系统原理说起
  15. 谷歌搜索 site命令 指定网站搜索
  16. spotify能免费下歌吗_什么是Spotify Duo,它适合您吗?
  17. 微信支付之微信小程序支付
  18. unity3D修改商店下载路径
  19. QT设置背景图片以及设置按钮
  20. 华为鸿蒙分布,华为鸿蒙开源!

热门文章

  1. “AI竞赛”相关网站-FlyAI(可能会泪目)
  2. My Eclipse 软件解锁秘钥
  3. IDEF0需求建模方法
  4. CSS插入样式的方法(有参考菜鸟教程的原句)
  5. Java- 数据结构之树
  6. 【ArcGIS】ArcGIS Pro和ArcMap的简单对比
  7. Spring MVC和Spring Boot有什么区别? 这样答,面试官直呼666
  8. 在Emacs Prelude配置下安装neotree插件,实现文件导航树
  9. Minecraft 1.18.1、1.18.2模组开发 16.种植作物(crop)
  10. 详解使用Linux指令怎么更改文件名称