如何使用matlab创建一个非常大的矩阵

osa*_*lia 8 matlab

当我试图创建一个非常大的矩阵,如40000x40000时,我有matlab的问题.

例如:

X =零(40000,40000);

错误消息是"???超出程序允许的最大变量大小."

有什么办法吗?

另外我还有另外一个问题,我们是否可以使用可变列大小的矩阵,例如在java中.

ken*_*ytm 16

每个数字40000*40000*8个字节= 12 GB,当然你没有足够的内存.

要创建一个包含大量零的巨大矩阵,您需要一个稀疏矩阵:

m = sparse(40000, 40000)
Run Code Online (Sandbox Code Playgroud)

要创建变体数组,可以使用单元格数组:

m = cell(3, 1)
m(1) = [1,2,3]
m(2) = [2,4,6,8,10]
m(3) = 6+6i
Run Code Online (Sandbox Code Playgroud)


nur*_*ion 1

40k*40k => 1.6*10^9 个数字。我相信 Zeros 会返回浮点数。所以你需要大约 1.6*10^9 Floats *4 Bytes/Float => 6.4GB RAM 只是为了这个变量......

你确定需要这么大的阵列吗?