是否有可能在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来创建一个。