函数句柄在MATLAB使用过程中经常涉及到, 个人小小的汇总一下,有不足和错误之处还望大家多多包涵和指点补充
函数句柄的定义具体参见官方文档https://ww2.mathworks.cn/help/matlab/matlab_prog/creating-a-function-handle.html这里就不多加叙述了
很多MATLAB内置函数使用时都需要涉及到函数句柄,像integral,fzero,fsolve等函数,这里以integral为例
个人目前掌握的创建主要三种方式
一、使用function函数创建自定义函数,在脚本文件使用@调用

例:

s=integral(@(x)fun(x),0,2)
function y=fun(x)
y=x.^2;
end

可得
s =
2.6667
二、使用@匿名函数

fun=@(x) x.^2;
s=integral(fun,0,2)

可得
s =
2.6667

三、使用syms(定义变量)和matlabFunction()将syms变量转换为函数句柄)两个函数结合使用

syms x
y=x^2;
fun=matlabFunction(y);
s=integral(fun,0,2)

可得
s =
2.6667

以上三种方法在求解的函数相对简单时可以互换,即如以上三个例子均是求x平方在0到2上的积分,但有时最好采用其中一种方法
一、当有其他参数需要输入时,最好使用第一种方法

i=1;
s=zeros(1,4);
for a=1:2:7s(i)=integral(@(x)fun(x,a),0,2);i=i+1;
end
function y=fun(x,a)
y=x.^2+a;
end

即可求得一组积分结果
s =
4.6667 8.6667 12.6667 16.6667
二、当需要函数内部需要先运算时,
例,需要先运算向量a与其转置相乘

syms x
a=[1,x,x^2];
y=a*a';
fun=matlabFunction(y);
s=integral(fun,0,2)

可得
s =
11.0667
此时若使用前两种方法,则因integral的求解方法先给x赋值,再运算,可能出现未定义与函数句柄类型相对应的运算’运算维度不符等问题

MATLAB函数句柄的小总结相关推荐

  1. MATLAB函数句柄

    函数句柄是从MATLAB6.0开始具有的一种语言结构,用以在使用函数过程中保存函数的相关信息,尤其是关于函数执行的信息. 1.函数句柄的创建与显示 函数句柄的创建可以通过特殊符号@引导函数名来实现:在 ...

  2. matlab 函数句柄@的介绍_什么是函数句柄(转)

    http://blog.csdn.net/kevinhg/article/details/8861774 http://www.ilovematlab.cn/thread-30375-1-1.html ...

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

    含数句柄是MATLAB 6之后特有的语言结构; 优点: 方便函数之间互相调用,兼容函数加载: 拓宽子函数包括局部函数的适用范围: 减少程序设计之中的冗余: 提高重复执行的效率: 数组.结构数组.细胞型 ...

  4. MATLAB 函数句柄

    问:f=@(x)acos(x)表示什么意思?其中@代表什么? 答:表示f为函数句柄,@是定义句柄的运算符.f=@(x)acos(x) 相当于建立了一个函数文件: % f.m function  y=f ...

  5. matlab 函数句柄详解

    MATLAB中的函数句柄是一个非常重要的概念,可以让我们更加灵活地使用函数,并且可以提高代码的可读性和可维护性.本文将介绍MATLAB中函数句柄的基本概念.使用方法以及一些应用场景.希望能够帮助读者更 ...

  6. matlab函数句柄操作函数

  7. matlab inline feval,matlab中关于函数句柄、feval函数以及inline函数的解析

    MATLAB函数句柄 函数句柄(Function handle)是MATLAB的一种数据类型. 包含了函数的路径.函数名.类型以及可能存在的重载方法: 引入函数句柄是为了使feval及借助于它的泛函指 ...

  8. Matlab中的函数句柄@

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50699990 @是Matlab中的句柄 ...

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

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

最新文章

  1. draw.io二次开发(1)三种运行模式的区别
  2. rabbitmq安装与配置(windows)亲测有效!!!
  3. 结构体中的自然对界法则
  4. [react] React怎么判断什么时候重新渲染组件呢
  5. springcloud gateway 使用nacos 作为配置中心 和 注册中心
  6. appium 如何调用 adb_带你了解可用于Android APP自动化测试的框架:Appium
  7. 单选按钮必填会有红色选中提示吗_视频切割怎么弄?视频剪辑软件可以切割视频吗?...
  8. js计算html的font-size
  9. 电脑屏保海底世界_电脑游戏假面骑士kiva中文版
  10. 浅谈IEEE会议论文的不出席政策Non-Presented Paper(No-Show)Policy
  11. MySQL日期计算函数
  12. 2021 HW —— 简单过程-致远OA
  13. 1434:相亲的胖胖
  14. 安装busybox步骤
  15. canonical是什么意思
  16. java安全学习(一)
  17. 判断一个人靠不靠谱,就看这3点
  18. 第六十九篇:从ADAS到自动驾驶(二):ADAS的功能及发展
  19. 木木的常用软件点评(1)------系统必备软件篇
  20. 笔记本电脑USB接口没有反应?原来问题的根源在这儿,涨知识了!

热门文章

  1. 智慧数据驱动:基于smardaten构建多维数据可视化大屏
  2. rn ios Android适配,rn-mobx-starter
  3. iOS TestFlight
  4. Oracle数据库alert log的位置
  5. could only be replicated to 1 nodes instead of minReplication (=2). There are 3 datanode(s) running
  6. linux tar 到目标目录,Linux解压到指定目录
  7. 怎么看电脑32位还是64位?4个简单方法!
  8. 【A星算法】--第三篇(网格管理器)
  9. 将多个csv文件合成一个csv
  10. 互联网金融的冲击主要来自于余额宝等以协议存款为主要收益的货币基金