【问题标题】:Out of Memory in MATLABMATLAB 内存不足
【发布时间】:2014-05-20 03:20:05
【问题描述】:

我有两个巨大的矩阵dat1=87093*59 和dat2=99802*59。我尝试执行以下操作 R=dat1*dat1' 但 MATLAB 向我抛出错误

??? Out of memory. Type HELP MEMORY for your options.

我已将 Java 堆内存增加到 2012Mb,但问题仍然存在。谁能帮我吗。 系统配置:windows 7-64bit, 8gb ram, MATLAB:r2010a-32bit 版本

【问题讨论】:

    标签: matlab memory out-of-memory


    【解决方案1】:

    假设 dat1 是 87093x59,通过执行 R=dat1*dat1',输出将为 87093x87093。说你真的是指dat1*dat2',更糟糕的是,87093x99802。

    假设dat1 是双精度(每个元素8 字节),dat1*dat1' 是60,681,525,192 字节(约60GB)。使用dat1*dat2',它接近 69 GB。我会说放弃或重新评估你的方法。

    【讨论】:

    • 感谢朋友的回复。这完全是我的错误..我应该看看矩阵大小。
    【解决方案2】:

    尝试使用捆绑在 JDK 的 bin 文件夹中的 jconsole 或 jvisualvm。然后查看你正在运行的java进程。可能是您的 PermGen 是这里的罪魁祸首,也可能是内存泄漏,在这种情况下,您可以通过这些工具转储内存并使用堆分析工具找出可能导致极端内存使用的原因。

    【讨论】:

      猜你喜欢
      • 2015-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多