Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 最初保存为XXX的变量YYY不能实例化为对象,将作为uint32读入_Matlab_Recover - Fatal编程技术网

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类,但该类的外壳足以将属性值加载到中。好主意,我将尝试它们并让您知道