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

  • 相关阅读:
    计算机二级Python
    vivado三人表决仿真
    verilog设计加法器
    超前进位加法器
    OO第二单元总结
    OO第一单元总结
    第一次阅读作业
    安卓计算器
    安卓第四周作业
    第十四周作业
  • 原文地址:https://www.cnblogs.com/snowxshy/p/3867606.html
Copyright © 2020-2023  润新知