保存Matlab对象实例将导致无限循环

时间:2018-07-24 15:44:26

标签: matlab file save instance handle

设置

我有created个名为“参与者”的Matlab 句柄类,用于读取和处理某些研究数据。我创建了该对象的多个实例,并将它们保存到硬盘上。没问题,我还检查了有问题的实例,以确保它在Matlab中可以正常工作。实例似乎没有任何错误。

问题

但是,在某些情况下,出于我的明确原因,Matlab陷入了写入磁盘的无限循环中。通过查看.mat字段输出的修改日期(每分钟不断变化)以及我的Matlab实例的运行速度大大降低,就可以明显看出这一点。

创建参与者的代码是

myparticipant = participant([basedir ,p_folder{p_num}]);

尝试过的方法

我已经通过右键单击工作区将其保存到磁盘,这会导致上述问题。

使用保存功能,我得到:

 save('test.mat', 'myparticipant')

Error using save
Error closing file test.mat.
The file may be corrupt. 

当然不会加载。

任何见识都会受到赞赏,因为我不确定如何开始着手解决此问题。

1 个答案:

答案 0 :(得分:0)

感谢excaza的评论,我得以发现此问题。正如我在评论回应中所解释的那样,问题在于因为我使用的是句柄类,所以工作内存中显示的数据量很小。但是,我的数据大小实际上大于2gb。在这种情况下,您必须使用Matlab的“ -V7.3”关键字保存到文件中!加那个标志对我有用。