我如何解决"错误使用vertcat内存不足"?

时间:2016-11-09 15:37:50

标签: matlab out-of-memory

我的代码读取7个图像文件夹并提取7个矩阵中的特征,并使用" vertcat"在一个大矩阵中收集所有7个矩阵。总共我有一个包含1745个图像和i的特征的矩阵想要使用Multi-SVM分类器对它们进行分类。 这是错误:

  

使用vertcat内存不足时出错。键入HELP MEMORY以获取选项。

我如何解决这个问题?请。

  • 我的操作系统是Windows 7 64位
  • 4 GB RAM
  • Matlab 2016a 64Bit

1 个答案:

答案 0 :(得分:0)

不幸的是,MATLAB在尝试连接矩阵时实际上耗尽了内存。你可以做一些记忆技巧,试图让这个过程变得更顺畅(在启动matlab之前杀死某些程序)。理想情况下,在尝试此操作时,您可能希望尽可能少地运行。

当您运行memory时,您可以看到项目列表

 >> memory
    Maximum possible array:               4577 MB (4.800e+009 bytes) *
    Memory available for all arrays:      4577 MB (4.800e+009 bytes) *
    Memory used by MATLAB:                 330 MB (3.458e+008 bytes)
    Physical Memory (RAM):                3503 MB (3.674e+009 bytes)

    *  Limited by System Memory (physical + swap file) available.

您可能遇到的是MATLAB max可能的数组大小对于您的阵列来说不够大。您可以尝试优化代码以在连接后释放单个阵列,但很可能您唯一的选择是购买更多RAM或使用更小的阵列。