MATLAB 函数句柄Function handle的用法(Af = @(x) A*x;)

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

函数句柄(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就可以适用于任何二维函数而不必做改动了。

MATLAB 函数句柄Function handle的用法(Af = @(x) A*x;)

时间: 2024-10-16 11:16:34

MATLAB 函数句柄Function handle的用法(Af = @(x) A*x;)的相关文章

matlab中关于函数句柄、feval函数以及inline函数的解析 (转)

http://blog.sina.com.cn/s/blog_7bff755b010180l3.html MATLAB函数句柄 函数句柄(Function handle)是MATLAB的一种数据类型. 包含了函数的路径.函数名.类型以及可能存在的重载方法: 引入函数句柄是为了使feval及借助于它的泛函指令工作更可靠:使“函数调用”像“变量调用”一样方便灵活:提高函数调用速度,特别在反复调用情况下更显效率:提高软件重用性,扩大子函数和私用函数的可调用范围:迅速获得同名重载函数的位置.类型信息.

3D Slicer中文教程(六)—调用matlab函数(MatlabBridge使用方法)

1.安装MatlabBridge插件 (1)在工具栏找到Extension,点击进入Extension Manager (2)找到MatlabBridge,安装 2.配置MATLAB环境 (1)在模块处找到Developer Tools——Matlab——Matlab Modules Generator (2)在Matlab executable处配置matlab.exe的路径(请确保计算机上安装有matlab,并且可以找到matlab.exe文件的位置):Matlab script direc

Matlab中函数句柄@的作用及介绍

问:[email protected](x)acos(x)表示什么意思?其中@代表什么?答:表示f为函数句柄,@是定义句柄的运算符.[email protected](x)acos(x) 相当于建立了一个函数文件:% f.mfunction  y=f(x)y=acos(x); 若有下列语句:[email protected](x)1/2.*(x==-1/2)+1.*(x>-1/28&x<1/2)+1.2.*(x==-1/2); 则相当于建立了一个函数文件: % xsqual.m fun

Matlab基础学习--------函数句柄

函数句柄是Matlab的一种常见数据类型. 函数句柄创建使用 @ 或者 str2func()来生成函数句柄. >> %创建一个cos()函数句柄 >> %方法1:[email protected] >> [email protected] hcos = @cos >> %方法2:fh = str2func('cos') >> fh = str2func('cos') fh = @cos >> functions(hcos) %使用fu

MATLAB 的函数句柄

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

matlab图形句柄属性总结

原文在于雪漫的bloghttp://blog.sina.com.cn/s/blog_4b9b714a0100cce2.html这两天在看句柄式图形方面的东西,以下是我在看书过程中整理的学习笔记,比较详细的介绍了句柄以及与其密切相关的各种图形对象和它们的属性.希望能对初学Matlab界面设计的朋友们有所帮助. GUI学习笔记: 句柄式图形常用函数:(1)get(h)返回句柄值h所指定的图形对象的所有属性名称与相对应的属性值(2)a = get(h)返回由句柄值h所指定的图形对象的属性结构数组,并且

什么是句柄?为什么会有句柄?HANDLE

今天学习Android,看到一个unix函数不明白,但返回值是handle,查了查意思,是句柄的意思,那什么是句柄呢,从网上搜了一些答案,觉得这篇文章比较好,个人认为比wiki的都要讲的好.简而言之,句柄是一种抽象的思想: 隐藏了内核实现的细节 同时为调用提供了方便 保证了内核的安全 从广义上,能够从一个数值拎起一大堆数据的东西都可以叫做句柄.句柄的英文是"Handle",本义就是"柄",只是在计算机科学中,被特别地翻译成"句柄",其实还是个&q

java调用matlab函数

如何将实验结果在matlab中可视化呢,下面使用java语言编程,调用matlab中的函数: 本人安装的是Matlab7.11.0 (R2010a)和 Eclipse 4.2 : 1)首先设置环境变量,运行tomcat,Eclipse等都需要依靠环境变量JAVA_HOME,Path,classpath,具体的设置可以参考这里 为了使在matlab中将.m函数编译为jar包,还需要在classpath中添加: %matlabInstallRoot%\R2010a\toolbox\javabuild

matlab函数集锦

matlab函数集锦 matlab函数集锦ISFINITE(X), ISINF(X), or ISNAN(X)pwd 当前目录eval 执行matlab函数CONV2(  ,'same')  卷积F = reshape(f,3,3);options = optimset('Jacobian','off');a0 = [0 0 0 0 0, 0];[af,resnorm,residual,exitflag,output,lambda,jacobian] = lsqnonlin(@(x) costR