![]() |
1
1
我相信 Mr Fooz 是正确的。传递给加载对象的自变量是“myobj”类型的对象,但行:
只是用存储在tmp.obj中的结构覆盖自变量。做:
应该为对象本身的图像属性调用set运算符。在matlab文档中有一个 sample class definition 使用一个名为“set.officenumber”的方法来说明这一点。 此外,函数savingMyObject中的以下行可能是不必要的:
我认为,如果您在类代码中使用名称“obj”代替单词“self”(正如文档所做的那样),这可能是最有意义的(并使代码更清晰)。self“在matlab中似乎不是任何一种特殊的关键字(就像其他语言一样)。据我所知,这只是另一个变量。=) 编辑第1页: 如果在加载对象方法中必须单独设置每个属性的前景听起来不那么有趣,一种解决方法是如果您的对象有一个像 SET method for handle graphics . 该set命令可以接受结构输入,其中每个字段名是属性名,每个字段值是该属性的新值。然后你会接到一个电话,比如:
稍微短一点,特别是如果你有很多属性要设置的话。当然,那你就得 写 对象的新set方法,但是如果它在其他地方也很有用,那么缩短的语法可能值得额外的工作。=) 编辑第2页:
|
![]() |
2
1
不要给自己赋值。只需替换方法调用范围内自变量的绑定。它不调用神奇的复制构造函数来替换调用方中的对象引用。相反,将字段复制到self中。尝试以下方法:
|
![]() |
3
1
结合 Mr Fooz's 和 gnovice's 建议,我添加了一个具有以下定义的集合函数
然后我修改了 加载对象 gnovice建议的方法
到
我需要确保具有我想要持久化的值的属性的前缀是“p”。 感谢gnovice和fooz先生的回答。 |
![]() |
Y.C. · 以不同颜色打印x轴上方的y值 3 年前 |
![]() |
dd24 · 在MATLAB中逐部分执行python程序 3 年前 |
![]() |
fateme · MATLAB,神经网络 3 年前 |
![]() |
Marta · 使用*时出错-内部尺寸矩阵必须一致 7 年前 |
![]() |
Morpheus · x*x^T的Matlab符号计算 7 年前 |
![]() |
Lawa · 如果列中的一个元素等于零,则将整列设为零 7 年前 |