首页 > 解决方案 > Matlab 符号的含义:xx@yy

问题描述

我无法理解以下代码片段。简单的调用看起来像这样,没有任何赋值或其他:

expression1@expression2;

expression2指的是自定义句柄类。

我已经查看了句柄,但无法从普通示例中弄清楚给定的调用结构做了什么,@(x) x^2;或者f = @sin;在网上找不到类似的示例。

任何有关符号可能做什么的帮助表示赞赏。

标签: matlabhandlenotation

解决方案


没有上下文很难确定,但这看起来像一个调用超类方法的子类(通常在子类实现中的附加功能之前)......

请参阅此处的文档。

链接文档中的示例:

classdef Sub < Super
   methods
      function foo(obj)
         % preprocessing steps
          ...
         foo@Super(obj);
         % postprocessing steps
          ...
      end
   end
end

在这种情况下,foo函数在类中定义,Super在子类中实现Sub,并扩展(带有预处理和后处理)。表示法foo@Super(obj)从子类调用超类方法。

请注意,这类似于SuperObj.foo(obj),只是您没有SuperObj类的实例化对象 ( )Super来进行此调用。obj.foo()而且由于您正在扩展/覆盖函数的超类版本,因此如果子类实现相同,则不能像调用一样调用 - 这就是您已经在其中的函数!因此需要这种不同的符号。


推荐阅读