我的目标是创造:
0或1条目的随机填充矩阵。在这种情况下,矩阵是4x24。4行的行和正好是6。24列的列和正好是1。调用所需的矩阵M。
另一种看待M的方法
24条目等于1。1条目。进度:
每一行都有带有一个6条目的1点。其余的是零,矩阵是稀疏的。对于4行,这意味着M可以由存储1条目位置的索引矩阵唯一确定。调用这个索引矩阵indexM。
我在indexM中填充了1:24抽样的数字,没有替换:
set.seed(30592)
colNum <- 24
rowSum <-6
numZeros <- colNum-rowSum
OneRow<-c(rep(1,rowSum),rep(0,numZeros))
indexM<-matrix(sample(1:24,replace=FALSE),
nrow=4,ncol=6,byrow=TRUE)对于给定的种子,矩阵是:https://pastebin.com/8T21MiDv。
如何将indexM转换为所需的稀疏矩阵?
我在sparseMatrix库中找到了Matrix,但是它需要一个向量或行索引以及另一个列索引向量,这不是我所拥有的。
谢谢。
发布于 2017-08-09 15:19:06
我在
sparseMatrix库中找到了Matrix,但是它需要一个向量或行索引以及另一个列索引向量,这不是我所拥有的。
这些限制强加于..。
rep(1:4, 6)1:24行指数和总指数之间的匹配是随机的。我们可以..。
library(Matrix)
# fix rows, jumble cols
sparseMatrix(rep(1:4, each=6), sample(1:24))
# fix cols, jumble rows
sparseMatrix(sample(rep(1:4, each=6)), 1:24)
# jumbl'm all
sparseMatrix(sample(rep(1:4, each=6)), sample(1:24))其中任何一个都会返回类似的东西
4 x 24 sparse Matrix of class "ngCMatrix"
[1,] . . . . | | . . | . . . | | . | . . . . . . . .
[2,] . | | . . . | . . | . . . . . . . . | . . . | .
[3,] . . . | . . . | . . | | . . . . | . . . | . . .
[4,] | . . . . . . . . . . . . . | . . | . | . | . |https://stackoverflow.com/questions/45593877
复制相似问题