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



是否有可能在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?

谢谢你的建议!

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

最新更新