R中跟踪矩阵的用途

时间:2016-06-27 03:06:19

标签: r matrix

虽然Trace Matrix使用了一个函数,如下所示:

sum(diag(matrix))

如果矩阵不是正方形(即" n x n"大小),这可能会错误地给出结果。是否还有其他内置功能可以运行" Trace"矩阵?

3 个答案:

答案 0 :(得分:1)

下面是一个快速函数,用于测试对象是否为矩阵,然后测试它是否也是正方形。

    tr <- function (m)
{
  total_sum <- 0
  if(is.matrix(m))
    {
      row_count <- nrow(m)
      col_count <- ncol(m)
      if(row_count == col_count)
      {
        total_sum <-sum(diag(m))
        total_sum
      }
      else
      {
        message ('Matrix is not square')
      }
  }
  else
  {
    message( 'Object is not a matrix')

  }
}

我还为Matrix.Trace找到了以下包:

Matrixcalc

答案 1 :(得分:1)

您可以尝试使用特征值

# first find eigenvalues e = eigen(matrix) # Calculate the trace of the matrix, and compare with the sum of the eigenvalues. # function to calculate the trace using sum of the diagonal trace <- function(data)sum(diag(data)) trace(H) # using sum of the eigenvalues sum(e$values)

希望它有所帮助。

答案 2 :(得分:1)

包装:心理

功能:tr()

示例:

grid

(“ Fehler”表示错误)

而且

包装:matrixcalc

功能:matrix.trace