协方差矩阵gsl

时间:2012-12-21 18:05:35

标签: c statistics gsl

我正在尝试计算两个向量a和b之间的马哈拉诺比斯距离。最终,我将把它用作统计算法中的距离测量。我正在使用gsl来实现它们。马哈拉诺比斯距离的公式是sqrt((a-b)'c ^ -1(a-b)),其中c是协方差矩阵。根据{{​​3}} gsl文档,它接收两个数据集并返回一个协方差值。我不知道如何使用它来计算协方差矩阵。 任何帮助表示赞赏。

感谢。

1 个答案:

答案 0 :(得分:3)

我认为你需要首先理解协方差矩阵的计算,其次是一个让你入门的示例代码

for (i = 0; i < A->size1; i++) {
        for (j = i; j < A->size2; j++) {
          a = gsl_matrix_column (A, i);
          b = gsl_matrix_column (A, j);
          double cov = gsl_stats_covariance(a.vector.data, a.vector.stride,b.vector.data, b.vector.stride, a.vector.size);
          gsl_matrix_set (C, i, j, cov);
        }
      }