Matlab表示法的含义:xx @ yy

Pao*_*ani 2 matlab handle notation

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

expression1@expression2;
Run Code Online (Sandbox Code Playgroud)

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

我查看了句柄,但无法弄清楚给定的调用结构的作用,从正常的例子@(x) x^2;或者在f = @sin;网上找不到类似的例子.

任何关于符号可能做什么的帮助都表示赞赏.

Wol*_*fie 6

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

请参阅此处的文档.

来自链接文档的示例:

classdef Sub < Super
   methods
      function foo(obj)
         % preprocessing steps
          ...
         foo@Super(obj);
         % postprocessing steps
          ...
      end
   end
end
Run Code Online (Sandbox Code Playgroud)

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

请注意,这类似于SuperObj.foo(obj),除了您没有实例化的对象(SuperObj)Super来进行此调用.而且因为你伸出/覆盖功能的超类版本,你不能只是打电话obj.foo(),你会如果子类实现是相同的-这是你已经在功能!因此需要这种不同的符号.