为什么MATLAB在打开导出的LabChart文件时会崩溃?

LabChart的导出MATLAB标准文件格式非常高效。这意味着导出大数据文件非常快,并且生成小数据量的*.mat的文件。然而,当用户试图打开 *.mat 中的数据时,他们用Labchart创建*.mat 文件时,偶尔会因为以下列问题之一与我们联系,讨论MATLAB崩溃的问题:

  • MATLAB表示“元素太多”而崩溃。
  • MATLAB显示“文件损坏”。

这两条消息的核心意思都表明MATLAB已经达到了内存限制。用户试图导出比安装MATLAB和计算机硬件所能处理的更多的数据。

解决这个问题有三个部分:

第1部分

要排除LabChart是问题所在,只需导出一个小得多的数据选择。最初的数量可能看起来不是很多,但是这里的成功取决于MATLAB可用的内存。

第2部分

要了解MATLAB安装的内存限制是多少,请在MATLAB中创建一个大矩阵并保存它,然后查看重新加载它时会发生什么。

例如,使用命令data=zeros(1,1e6)创建一个包含1M样本的数组。

故障排除步骤

判断实际极限的唯一方法似乎是通过反复试验,在MATLAB中使用以下命令:

  1. 创建一个名为“data”的虚拟向量,填充1e6、1e7或1e8个0:data= 0 (1,1e8)
  2. 以MATLAB v4文件格式(这是我们使用的)将虚拟向量“data”保存为“c:\test.mat” :保存c:\test.mat数据
  3. 关闭MATLAB,重启MATLAB,然后尝试重新加载文件:load c:\test.mat
  4. 在MATLAB中输入“whos”来确认步骤3是否工作。否则,它只是悄悄地工作,您所看到的只是普通的MATLAB命令提示符。如果太大而无法加载,则会显示“文件损坏”的错误提示。

例如,在我们的一台测试计算机上,我们发现64位MATLAB拒绝加载任何大于1 x 10^8的东西。在同一台机器上,32位MATLAB的极限更低(约为75,000,000)。

第3部分

最后,要估计数据的最大大小,只需将每个块和每个通道中的样本数相加即可。当您在图表视图中单击并按住通道时,所记录的数据面板将显示样本的数量。

进一步阅读:

http://www.mathworks.com/support/tech-notes/1100/1107.html

http://www.mathworks.com/matlabcentral/answers/91711-what-is-the-maximu…