【发布时间】:2019-08-13 22:43:34
【问题描述】:
我有一个包含 9200 行和 6 列的数据集。我找到了这个数据框的内核,代码如下:
#kernel
library("kernlab", "v0.9-27")
D<-as.matrix(X1)
rbf <- rbfdot(sigma = 0.05)
kernel<-kernelMatrix(rbf, D)
现在我想把它作为一个方阵的对角线。例如假设核矩阵是
K11 k12
k21 k22
我需要一个矩阵
K11 k12 0 0 0 0 0 0
k21 k22 0 0 0 0 0 0
0 0 K11 k12 0 0 0 0
0 0 k21 k22 0 0 0 0
0 0 0 0 K11 k12 0 0
0 0 0 0 K21 k22 0 0
0 0 0 0 0 0 K11 k12
0 0 0 0 0 0 K21 k22
【问题讨论】:
-
Matrix::bdiag(replicate(2, kernel, simple = FALSE))
-
我收到此错误:没有将“函数”强制为“CsparseMatrix”的方法或默认值
-
sherek_66;好吧,似乎它使用的是
stats::kernel函数,而不是您问题中的kernel对象。运行您问题中的代码,然后运行评论中的代码^^,它将起作用。