R 中的迹矩阵使用什么函数

TsT*_*ime 5 r matrix

虽然有一个用于跟踪矩阵的函数,如下所示:

sum(diag(matrix))
Run Code Online (Sandbox Code Playgroud)

如果矩阵不是正方形(即“nx n”大小),这可能会错误地给出结果。是否有其他内置函数用于运行矩阵的“跟踪”?

TsT*_*ime 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')

  }
}
Run Code Online (Sandbox Code Playgroud)

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

矩阵计算