在实现三阶Markov链时,我得到了一个错误,暗示稀疏矩阵存在最大维数。
E.g。要求以下稀疏矩阵
T = spalloc(1e12,1e12,1e5);
我收到错误
使用稀疏时出错 请求1000000000000x1000000000000(7450.6GB)数组超出 最大数组大小首选项。创建大于的数组 这个限制可能需要很长时间才能成为MATLAB 反应迟钝。有关更多信息,请参阅数组大小限制或首选项 信息。
根据我对稀疏矩阵的理解,矩阵应该占用~3 * 8 * 1e5 = 2.4 MB的内存(坐标为2倍,每个非零入口为2倍)。这明显低于错误中宣称的7450.6GB。
我对稀疏矩阵的理解是错误的吗?或者出了什么问题?也许最重要的是,有没有办法解决这个问题?