如何加载一个matlab对象,其中类定义文件放在单独的包中

时间:2015-06-09 09:19:48

标签: matlab class object

在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?

感谢您的建议!

1 个答案:

答案 0 :(得分:1)

您需要将loadobj方法添加到新类中。您还需要一个简单的类myTestClass在旧位置,只需要一个loadobj方法,该方法调用移动类的loadobj方法。 MATLAB不知道你已经移动了这门课程。加载时,它知道它是类类型myTestClass并尝试通过查找myTestClass来创建一个。