同一包中的Matlab调用函数

Posted

技术标签:

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

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

例子

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

classdef bar2

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

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

【问题讨论】:

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

【讨论】:

以上是关于同一包中的Matlab调用函数的主要内容,如果未能解决你的问题,请参考以下文章

golang编程实践总结

C++ ~~~一个函数如何调用同个函数两次?

python怎么导入同一包的模块

java中四种访问权限在同类体中,同一包中,不同包中的权限范围

使用 foreach 时无法从同一包中找到函数(Windows 开发)

python 怎么在一个函数中调用同一个函数两次