Matlab 最初保存为XXX的变量YYY不能实例化为对象,将作为uint32读入
我犯了一个错误,用一个我再也找不到的类定义记录了一堆重要数据。方法并不重要,我只想要数据;结构转换就可以了 我有办法找回这个吗Matlab 最初保存为XXX的变量YYY不能实例化为对象,将作为uint32读入,matlab,recover,Matlab,Recover,我犯了一个错误,用一个我再也找不到的类定义记录了一堆重要数据。方法并不重要,我只想要数据;结构转换就可以了 我有办法找回这个吗 谷歌搜索也没用 解决方案是创建一个重载该方法的新类。有关类的加载过程的更多信息,请参阅 我通过创建一个类复制了您的问题: classdef myclass 性质 建议1 建议2 建议3 结束 方法 函数obj=myclass(a、b、c) obj.Prop1=a; obj.Prop2=b; obj.Prop3=c; 结束 结束 结束 然后我创建了这个类的一个对象并将其
谷歌搜索也没用 解决方案是创建一个重载该方法的新类。有关类的加载过程的更多信息,请参阅 我通过创建一个类复制了您的问题:
classdef myclass
性质
建议1
建议2
建议3
结束
方法
函数obj=myclass(a、b、c)
obj.Prop1=a;
obj.Prop2=b;
obj.Prop3=c;
结束
结束
结束
然后我创建了这个类的一个对象并将其保存到一个文件“x.mat”:
x=myclass('a',56,[1,2,3]);
拯救x
接下来,我删除了myclass
文件,并清除了class。这让我陷入了你的处境
然后,我创建了一个新的myclass
类,该类重载loadobj
方法:
classdef myclass
性质
数据
结束
方法(静态)
功能obj=加载obj(s)
obj=myclass;
obj.data=s;
结束
结束
结束
请注意,它如何不知道任何原始属性。这无关紧要。如果从MAT文件加载对象时缺少任何原始属性,将调用loadobj
,其中s
是包含原始对象所有属性的struct
使用这个新的类定义,
load x
创建了一个类myclass
的对象x
,其中x.data
是一个包含保存在“x.mat”中的对象属性的结构。IIRC,您需要将类定义放在路径上才能解决该错误…您是否能够记住足够多的类定义以使属性对齐?您可以创建一个与原始类不同的spoof类,但该类的外壳足以将属性值加载到中。好主意,我将尝试它们并让您知道