arrays - 我需要增加 Maximum possible array size

标签 arrays matlab memory

我在装有 32 位 Windows 7 操作系统的 Coure2Duo PC 上安装了 4GB Ram。我已将分页大小增加到 106110MB。但是在完成所有这些之后,我无法显着增加最大数组大小。

规范如下

memory
Maximum possible array:             129 MB (1.348e+08 bytes) *
Memory available for all arrays:    732 MB (7.673e+08 bytes) **
Memory used by MATLAB:              563 MB (5.899e+08 bytes)
Physical Memory (RAM):             3549 MB (3.722e+09 bytes)

*  Limited by contiguous virtual address space available.
** Limited by virtual address space available.

请尽早帮助我。我什至无法以 double 格式读取 48+MB 大小的文件。

最佳答案

您可以通过两种方式为 MATLAB 清理内存。由于您使用的是 32 位版本的程序,因此通常限制为 2GB 内存。使用 /3GB switch打开该程序时,该程序会额外获得 1GB 的 RAM。

其次,您应该考虑使用 pack()函数,它重新排列 RAM 中的变量以释放更多 连续 内存空间。最重要的是,这会影响您打开单个阵列的能力。

请记住:您可以通过将可用内存量除以变量类型的大小来计算出数组将包含多少项。 Double 变量每个占用 8 个字节。您的 129MB 可用空间应该允许在单个数组中包含大约 1685 万个 double 值。

您可以使用 memory functions 查看有关内存使用情况的信息包含在 MATLAB 中。

  • memory 显示内存信息
  • inmem 将显示存储在内存中的变量和函数
  • clear 将允许您清除特定变量或函数的内存。

关于arrays - 我需要增加 Maximum possible array size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20481239/

相关文章:

c++ - 制作一个接受数组输入的函数,打印2d c++的元素

string - 如何从matlab中的字符串中获取数字

matlab - 元胞数组和函数句柄

c++ - 在内存池中查找下一个可用 block

c - 尝试删除字符串字符

javascript - 循环嵌套 Handlebars 导入数组中的特定元素时出现问题

arrays - matlab 如何用向量解释冒号符号?

java - 堆转储!=虚拟内存?

c# - Asp.Net 核心 api 中未释放内存

arrays - 根据维度名称聚合数组