【问题标题】:Matlab call function in same package同一包中的Matlab调用函数
【发布时间】:2015-01-13 13:31:04
【问题描述】:

有一种简单的方法可以调用来访问同一个包中的类,而无需指定包名。

例子

我有一个包名为 foo,类为 bar 和 bar2,假设我希望 bar2 是 bar 的子类,然后我会写

classdef bar2

有没有办法告诉 matlab 它应该在同一个包中。

我想要这样做的原因是,如果我将包名称更改为 fo,我将不得不在包中的所有文件中更改它。

【问题讨论】:

  • 没有好的解决办法。使用从未用于其他任何内容的包名称,然后您可以使用 search&replace 轻松重命名包。
  • 好的,谢谢。在使用包的文件中也会有一些搜索和替换。所以最终额外的工作不会那么多。

标签: matlab


【解决方案1】:

不幸的是,我认为没有办法做到这一点。是的,这很烦人。

【讨论】:

    【解决方案2】:

    Matlab documentation 明确表示在子类化时需要包含包名(即使您在同一个包中)。

    引用包中包含的超类

    如果包中包含超类,请包含包名。例如:

      classdef stock < financial.asset
         methods
            function s = stock(asset_args,...)
               if nargin == 0
                  ...
               end
               % Call asset constructor
               s@financial.asset(asset_args); 
               ...
            end
         end
      end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-29
      • 1970-01-01
      • 2020-10-11
      • 1970-01-01
      • 2020-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多