【问题标题】:MATLAB : import package for base classMATLAB:基类的导入包
【发布时间】:2012-01-18 12:08:19
【问题描述】:

我有一个基类 A 和一个派生类 B,它们存储在以下文件夹结构中。

+myPackage (package Path)
  @A    ( folder of class A )
    A.m ( filename of class )
  @B
    B.m

现在我想使用具有以下头部的 B 类

classdef B < A

不幸的是,这不起作用,因为它们位于不同的文件夹中,我无法像这样导入:

import myPackage.*
classdef B < A

是否可以在不丢失文件夹组织的情况下解决这个问题?

【问题讨论】:

    标签: matlab import package directory derived-class


    【解决方案1】:

    我想如果你写

    classdef B < mypackage.A
    

    它应该可以工作。

    【讨论】:

    • 这种表示法会带来额外的问题,例如限制为 64 个字符
    • 只要包名和类名分别小于namelengthmax个字符就可以了。连接在一起的包名和类名可以长于namelengthmaxnamelengthmax 通常是 63 个字符,我认为这已经足够了。
    • 不幸的是,它还不够长。如果您想使用诸如 domain.bestfit.forms.combinations.bundle.BrownDistortionParameters 之类的口语名称,您将很快达到极限。 ATM MATLAB 似乎不知道如何管理大型项目。也许 MATLAB 不适合构建大型应用程序?
    • domain.bestfit.forms.combinations.bundle.BrownDistortionParameters 适合我。 @8472 我想知道您是否还有其他事情要做。正如我所提到的,只要包和类单独具有少于 63 个字符的名称,它们连接的长度就不是问题。尽管 MATLAB 没有像 C# 或 Java 等更主流的语言那样广泛用于大型应用程序是对的,但仍有很多人使用它成功地创建了非常复杂的大型项目。我们不要过于急切地责怪 MATLAB!
    • 个人建议5层包可能太多了。 Mathworks 工具箱通常有 2 层,但我想不出更多的例子。在 Java 中,您通常有 3 个或可能有 4 个。Eclipse 项目(很大)可能有多达 5 个。我鼓励您认真重新考虑您的包层次结构。另外,我不会说你不能使用 MATLAB 来构建大型项目,因为大多数 MATLAB 本身都是在 MATLAB 中实现的,而且它是一个相当大的项目。
    猜你喜欢
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 2010-09-16
    相关资源
    最近更新 更多