如何在MATLAB中生成一个大的方形二进制矩阵

时间:2016-09-10 08:32:23

标签: matlab matrix binary

我需要在MATLAB中生成一个大的方形二进制稀疏矩阵(大约100k x 100k)。但是我得到了内存不足和#34;错误。 有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

100,000 x 100,000矩阵包含10,000,000,000个双打。每个字节为8个字节,即80,000,000,000字节,即大约74.5058 Gb

我严重怀疑你有80Gb的RAM(更不用说,只分配给matlab),所以你可能必须找到另一种方法来处理你的数据。

<小时/> 编辑道歉,我只是注意到稀疏位。

如果您尝试将稀疏矩阵初始化为sparse (zeros( 100000,100000)),由于上述原因,这将失败(即您要求octave / matlab首先存储75Gb的零矩阵,并且仅然后将其转换为稀疏矩阵。)

相反,您应该初始化100,000x100,000稀疏矩阵,如下所示:

s = sparse(100000,100000);

然后继续填写其内容 假设稀疏矩阵中非零元素的数量足够低,可以使用系统的内存轻松处理它们,并且您可以在不分配大的坏矩阵的情况下填写必要的值。首先,这应该工作正常。

查看sparse函数,了解从数据初始化稀疏矩阵的其他方法。

答案 1 :(得分:0)

尝试增加系统交换文件的大小。