R 中的 A/B 对矩阵执行逐元素除法。
但是,如果我从 Matrix 包生成一个稀疏矩阵,并尝试划分 A/B,我会收到此错误:
> class(N)
[1] "dgCMatrix"
attr(,"package")
[1] "Matrix"
> N/N
Error in asMethod(object) :
Cholmod error 'problem too large' at file ../Core/cholmod_dense.c, line 105
>
有趣的。当稀疏矩阵的总大小很小时,我会得到这种行为:
> m <- sparseMatrix(i=c(1,2,1,3), j=c(1,1,3,3), x=c(1,2,1,4))
> m/m
3 x 3 Matrix of class "dgeMatrix"
[,1] [,2] [,3]
[1,] 1 NaN 1
[2,] 1 NaN NaN
[3,] NaN NaN 1
>
但是当它的大小适中(~ 20000 个元素)时,我得到了 Cholmod 错误。
是否有解决方法或更合适的方法来对 R 中的稀疏矩阵进行元素除法?