R中巨大的原始基质

时间:2018-01-09 22:20:43

标签: r

以下代码导致内存错误:

diag(1:100000)

是否有任何替代方法可以产生巨大的对角矩阵?

1 个答案:

答案 0 :(得分:6)

更长的答案:我建议创建对角矩阵,因为在大多数情况下你可以不用它。为了清楚起见,请考虑最典型的矩阵运算:

  1. 将对角矩阵<script> export default { methods: { openNotifications () { bus.$emit('dialog', true) } [...] </script> 乘以向量D以生成v。不要保持矩阵,而是将“矩阵”保留为对角元素的向量Dv,然后将d元素乘以d。结果相同。
  2. 反转矩阵。同样,简单:反转每个元素(当然,仅对于对角矩阵,这通常是正确的反转)。
  3. 各种分解/特征值/决定因素/跟踪。同样,这些都可以在向量v上完成。
  4. 简而言之,虽然它需要您的代码中的一些注意力,但您始终可以将对角矩阵表示为向量,这应该可以解决您的内存问题。

    更短的回答:现在,说了这么多,当然人们已经使用稀疏矩阵隐式地实现了上述步骤,这些步骤完成了上述步骤。在R中,d包适用于稀疏矩阵:https://cran.r-project.org/web/packages/Matrix/Matrix.pdf