[英]How to create a sparse diagonal matrix?
Might be a very silly question, but I cannot seem to find a proper way to create a sparse diagonal matrix in R. I've found the functions:可能是一个非常愚蠢的问题,但我似乎找不到在 R 中创建稀疏对角矩阵的正确方法。我找到了函数:
diag.spam()
spdiags()
and used them with library Matrix
and package spam
downloaded, but R did not seem to recognize these functions.并将它们与库
Matrix
和包spam
,但 R 似乎无法识别这些功能。 Does anyone know a function or library I need to download?有人知道我需要下载的函数或库吗?
I need it because I want to create diagonal matrices larger than 256 by 256.我需要它,因为我想创建大于 256 x 256 的对角矩阵。
The Diagonal()
function in the Matrix
package. Matrix
包中的Diagonal()
函数。 ( Matrix
is a "recommended" package, which means it is automatically available when you install R.) (
Matrix
是一个“推荐”包,这意味着它在您安装 R 时自动可用。)
library(Matrix)
m <- Diagonal(500)
image(m)
Diagonal(n)
creates an nxn identity matrix. Diagonal(n)
创建一个 nxn 单位矩阵。 If you want to create a diagonal matrix with a specified diagonal x
, use Diagonal(x=<your vector>)
如果要创建具有指定对角线
x
的对角矩阵,请使用Diagonal(x=<your vector>)
Use bandSparse of the Matrix library.使用 Matrix 库的 bandSparse。
to get an n-by-n matrix with m on its diagonal use, write:要得到一个 n×n 矩阵,其中 m 对角线使用,写:
bandSparse(n,n,0,list(rep(m, n+1)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.