如何创建一个稀疏对角矩阵?

时间:2020-02-06 13:39:40

标签: r sparse-matrix diagonal

可能是一个非常愚蠢的问题,但是我似乎找不到合适的方法在R中创建稀疏对角矩阵。 我发现了这些功能:

  • diag.spam()
  • spdiags()

并将它们与库Matrix和已下载的软件包spam一起使用,但是R似乎无法识别这些功能。有人知道我需要下载的功能或库吗?

我需要它,因为我想创建大于256 x 256的对角矩阵。

2 个答案:

答案 0 :(得分:3)

Diagonal()软件包中的Matrix函数。 (Matrix是一个“推荐”软件包,这意味着在您安装R时它将自动可用。)

library(Matrix)
m <- Diagonal(500)
image(m)

Diagonal(n)创建一个n x n单位矩阵。如果要创建具有指定对角线x的对角矩阵,请使用Diagonal(x=<your vector>)

答案 1 :(得分:1)

使用Matrix库的bandSparse。

要得到一个n乘n的矩阵,其对角线使用m,请输入:

bandSparse(n,n,0,list(rep(m, n+1)))