Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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对象实例会导致无限循环_Matlab_File_Save_Instance_Handle - Fatal编程技术网

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

保存Matlab对象实例会导致无限循环,matlab,file,save,instance,handle,Matlab,File,Save,Instance,Handle,设立: 我有一个名为“参与者”用于阅读和操作某些研究数据。我已经创建了这个对象的多个实例,并将它们毫无问题地保存到硬盘上。我还检查了有问题的实例,以确保它在Matlab中正常工作。该实例似乎没有任何bug 问题 然而,在某些情况下,由于我没有明确的理由,Matlab陷入了一个无限循环,无法写入磁盘。这在查看.mat fiels输出的修改日期(每分钟不断变化)以及我的Matlab实例的速度大大减慢的事实上是显而易见的 创建参与者的代码是 myparticipant = participant([b

设立:

我有一个名为“参与者”用于阅读和操作某些研究数据。我已经创建了这个对象的多个实例,并将它们毫无问题地保存到硬盘上。我还检查了有问题的实例,以确保它在Matlab中正常工作。该实例似乎没有任何bug

问题

然而,在某些情况下,由于我没有明确的理由,Matlab陷入了一个无限循环,无法写入磁盘。这在查看.mat fiels输出的修改日期(每分钟不断变化)以及我的Matlab实例的速度大大减慢的事实上是显而易见的

创建参与者的代码是

myparticipant = participant([basedir ,p_folder{p_num}]);
尝试的方法

我通过右键单击工作区保存到磁盘,这导致了上述问题

使用save函数,我得到:

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

Error using save
Error closing file test.mat.
The file may be corrupt. 
当然,之后它不会加载


如果有任何见解,我将不胜感激,因为我不知道如何开始处理这个问题

多亏了excaza的评论,我才发现了这个问题。正如我在评论回复中所解释的,问题是因为我使用的是handle类,所以工作内存中显示的数据量非常小。然而,我的数据量实际上大于2gb。在这些情况下,您必须使用Matlab的“-V7.3”关键字保存到文件!加上那面旗子对我有好处

你确定它是无限的,而不仅仅是保存大量数据吗?您处理的数据量有多大?当前有问题的数据集与过去创建的多个实例有何不同?您好,它确实是无限的,但您对数据大小的评论非常有用。我能解决这个问题!本质上,问题是因为我使用的是句柄类,所以工作内存中显示的数据的大小比数据的实际大小小得多。因为我的数据大于2gb,所以我不得不使用Matlab的“-V7.3”关键字保存到文件中!Matlab产生的错误是非信息性的,我假设是因为handle类。再次感谢:)如果它处于无限循环中,它是如何抛出错误的?请不要编辑问题或标题以添加不必要的信息。该解决方案不属于标题。@excaza,正如我在问题描述中提到的“这在查看.mat fiels输出的修改日期(每分钟不断变化)以及我的Matlab实例速度大大降低这一事实中是显而易见的。”