我需要定义一个大小为nrow(X)
的稀疏matix,它由这三个矩阵(II,JK,JH)组成。他们的大小等于3164*1
。
到目前为止,我得到了以下不正确的命令。
Gradient <- sparseMatrix(II,JK,JH, dims=c(nrow(X),nrow(X)))
II具有从3到82的值(它具有重复,例如10倍值3和14倍值4).JK也与II相同,但是在II中,值被分类,而在JK中它们没有最后是-1和1的JH。
稀疏矩阵的大小也应该是83 * 83。
任何帮助都会感激不尽。
由于
答案 0 :(得分:0)
以下是可能帮助的示例。帖子中的信息不足以确定,但具体到足以假设这一点 这种类型的矩阵或转置是期望的结果。
首先我们创建一些模拟数据
set.seed(42) # for reproducibility of the example
II <- as.matrix(sample(7,replace=TRUE))
JK <- as.matrix(sample(7,replace=TRUE))
JH <- sample(c(1,-1),length(II),replace=TRUE)
注意:上面的as.matrix()
命令是不必要的,但OP说明了这一点
向量II
,JK
,JH
存储为矩阵,因此我将它们包含在内以获取相同的数据类。
无论是一维矩阵还是一维矩阵都没有任何区别 无量纲向量。
使用这种类型的数据,可以按如下方式生成稀疏矩阵:
library(Matrix)
spMatrix(max(II), max(JK), i = II, j = JK, x = JH)
结果是以下稀疏(7x7)矩阵:
7 x 7 sparse Matrix of class "dgTMatrix"
[1,] . . . . . . .
[2,] . . . . . . .
[3,] . . . . -1 . .
[4,] . . . . . . -1
[5,] . . . . . 1 .
[6,] . -1 . 1 . . .
[7,] 1 . . . -1 . .
此示例中使用的数据:
Row indices:
II <- as.matrix(c(7, 7, 3, 6, 5, 4, 6))
Column indices:
JK <- as.matrix(c(1, 5, 5, 4, 6, 7, 2))
Matrix elements:
JH <- c(1, -1, -1, 1, 1, -1, -1)