我一直在为一种特殊的轴开发一个类。因为我们不能从内置的axes类派生类,所以我创建了一个句柄类,它有一个关联的axes对象作为它的属性之一。由于具有这些专用轴之一的图形将保存在.fig文件而不是.mat文件中,因此我将类属性存储在相关轴对象的UserData属性中。如果我的类构造函数像输入参数一样传递了一个.fig文件,那么它将查找这些属性。
我的一些类属性是定制的图形对象,类方法希望看到这些对象。我的问题是,当我试图设置其中一个属性的值时,它会删除所有其他UserData字段,并用这个值替换所有这些字段。
下面是一个简化版本:
在为图形对象设置属性之前,我有这个:
myAxes.UserData.myClassProperties
其中myClassProperties是一个结构体,有几十个字段用于类属性,其中一个叫做'EarthPatchHandle'。当我尝试这样设置时:
myaxis . userdata . myclassproperties . earthpatchhandle = surfl(…
myClassProperties的所有其他字段都消失了,唯一剩下的字段是EarthPatchHandle。
我怀疑,通过将句柄类对象存储为另一个句柄类的UserData属性中的另一个句柄类的属性,我遇到了麻烦,但我不确定。
有人知道这是怎么回事吗?
[注:可能有一个更好的设计,我正在尝试做什么,如存储我的完整类对象在轴UserData,而不是单独的属性。如果可能的话,我将开始另一个问题。]