我正在尝试为250000或更多行的矩阵分配内存 但Matlab显示出内存不足错误。我真的不明白如何分配内存。 我所做的是:
temp = zeros(1000*1000)
如何分配10 ^ 6行的矩阵?
答案 0 :(得分:2)
简答:这样做
temp = zeros(1E6,1);
答案很长:
根据{{3}},zeros
在给出一个参数时返回NxN
矩阵。所以你实际上正在创建一个完整的1E6 x 1E6
矩阵,这个矩阵非常庞大(只有10兆兆字节的内存)。
答案 1 :(得分:0)
每个数字(double
)占用8个字节。您正在分配1000000乘1000000矩阵(请记住,zeros(n)
通过n
矩阵创建n
。那个1000亿个元素共计800亿个字节。这是很多字节。为了实现多少,将它除以1024几次得到大小,以KB,GB,TB等为单位。经过3次划分,我们看到它达到了7.3TB。巨大!
只要矩阵的大多数元素都是零,就有办法处理像这样的巨大矩阵。您可以查看sparse matrices了解详情。