Matlab表示法的含义:xx @ yy

时间:2018-10-01 09:32:21

标签: matlab handle notation

我无法理解以下代码段。简单的调用看起来像这样,没有任何分配,否则:

expression1@expression2;

expression2指的是一个自定义的句柄类。

我已经研究了句柄,但无法从正常示例@(x) x^2;f = @sin;中弄清楚给定的调用结构如何工作,并且无法在线找到类似的示例。

感谢您对该符号可能做的任何帮助。

1 个答案:

答案 0 :(得分:6)

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

请参阅文档here

链接文档中的示例

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() -这就是您已经在使用的函数!因此,需要这种不同的表示法。