【发布时间】:2017-01-08 02:08:57
【问题描述】:
当我尝试在相同的常规和稀疏矩阵上应用log 函数时,得到的结果是不同的。在应用这些功能时我应该记住什么?下面是一个可重现的例子。
TestMatrix = matrix(c(3,1,0,0,0,4,0,1,0,0,2,1,1,2,0,6,1,0,1,0,1,0,0,0,0),5,byrow = TRUE)
TestSparseMatrix = Matrix(TestMatrix,sparse = TRUE)
# Logarithmic function when applied to regular matrix
-log(TestMatrix / rowSums(TestMatrix), 2)
#Output
# [,1] [,2] [,3] [,4] [,5]
#[1,] 0.4150375 2.000000 Inf Inf Inf
#[2,] 0.3219281 Inf 2.321928 Inf Inf
#[3,] 1.5849625 2.584963 2.584963 1.584963 Inf
#[4,] 0.4150375 3.000000 Inf 3.000000 Inf
#[5,] 0.0000000 Inf Inf Inf Inf
# Logarithmic function when applied to Sparse matrix
-log(TestSparseMatrix / rowSums(TestSparseMatrix), 2)
# Output
# [,1] [,2] [,3] [,4] [,5]
#[1,] 0.2876821 1.386294 Inf Inf Inf
#[2,] 0.2231436 Inf 1.609438 Inf Inf
#[3,] 1.0986123 1.791759 1.791759 1.098612 Inf
#[4,] 0.2876821 2.079442 Inf 2.079442 Inf
#[5,] 0.0000000 Inf Inf Inf Inf
【问题讨论】:
标签: r matrix sparse-matrix