gpt4 book ai didi

windows - 如何修复 Matlab 中 10800x10800 矩阵的内存不足错误?

转载 作者:可可西里 更新时间:2023-11-01 10:59:01 25 4
gpt4 key购买 nike

情况:如何处理“出内存”错误。

问题基本上是我使用 10800x10800 矩阵。我在 32 位 Windows 系统上。执行此操作时出现内存不足错误:

a=zeros(10800,10800);

这是我得到的内存:

>> memory
Maximum possible array: 393 MB (4.120e+08 bytes) *
Memory available for all arrays: 1097 MB (1.150e+09 bytes) **
Memory used by MATLAB: 639 MB (6.697e+08 bytes)
Physical Memory (RAM): 895 MB (9.387e+08 bytes)

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

系统:Windows 32位

最佳答案

矩阵存储在一个连续的内存块中。在处理非常大的矩阵时,此类 block 的分配可能会出现问题(仅仅是因为可能找不到足够大的空闲内存块)。

由于您没有提供有关代码的任何详细信息,我只能建议规避此问题的方法:

  1. 如果您的矩阵包含很多零,请将其表示为 sparse matrix .它通过不存储零来使用更少的内存来存储这样的矩阵。

  2. 将您的矩阵分解成更小的 block ,并相应地修改您的算法。

  3. 使用更高效的数据类型而不是 double ,如果它们可以适应您正在使用的值的范围(此建议归功于 Amro 和 Rody)。考虑使用 single precisioninteger data types (还要注意无符号整数!)。

关于windows - 如何修复 Matlab 中 10800x10800 矩阵的内存不足错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16143438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com