在matlab中是否可以加载一个将类定义文件放在单独包中的对象?
例如:
T = myTestClass;
save('T');
现在我想将我的类放在一个包中,所以我按如下方式创建目录结构:
+myTestPack/@myTestClass/myTestClass.m
接下来,我尝试恢复保存的对象:
import myTestPack.*
load('T.mat');
结果总是:
Warning: Variable 'T' originally saved as a myTestClass cannot be instantiated as an object and will be read in as a uint32.
有什么方法可以解决这个问题吗?我想重构我的代码,但很多旧数据被保存为对象。 也许我需要将loadobj / saveobj方法添加到定义文件中,或者可能有一种方法可以将类从myTestClass重命名为myTestPack.myTestClass?
感谢您的建议!
答案 0 :(得分:1)
您需要将loadobj方法添加到新类中。您还需要一个简单的类myTestClass在旧位置,只需要一个loadobj方法,该方法调用移动类的loadobj方法。 MATLAB不知道你已经移动了这门课程。加载时,它知道它是类类型myTestClass并尝试通过查找myTestClass来创建一个。