如何分配10 ^ 6行的矩阵?

时间:2015-02-10 19:02:02

标签: matlab

我正在尝试为250000或更多行的矩阵分配内存 但Matlab显示出内存不足错误。我真的不明白如何分配内存。 我所做的是:

temp = zeros(1000*1000)

如何分配10 ^ 6行的矩阵?

2 个答案:

答案 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了解详情。