【发布时间】:2018-07-24 15:44:25
【问题描述】:
设置:
我有created一个名为“Participant”的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.
当然之后就不会加载了。
任何见解都将不胜感激,因为我不确定如何开始处理这个问题。
【问题讨论】:
-
您确定它是无限的,而不仅仅是保存大量数据吗?您正在处理的数据量有多大?当前有问题的数据集与过去创建的多个实例有何不同?
-
嗨,它确实是无限的,但您对数据大小的评论非常有帮助。我能够解决这个问题!本质上,问题在于因为我使用了句柄类,所以工作内存中显示的数据大小远小于数据的实际大小。因为我的数据大于2gb,我不得不使用Matlab的“-V7.3”关键字保存到文件! Matlab 产生的错误是非信息性的,我假设是因为句柄类。再次感谢:)
-
死循环怎么报错?
-
请不要编辑问题或标题以添加不必要的信息。该解决方案不属于标题。
-
@excaza 正如我在问题描述中提到的“这在查看 .mat 字段输出的修改日期时很明显,该日期每分钟都在变化,而且我的 Matlab 实例速度大大减慢。”
标签: matlab file save instance handle