我在Matlab中为我的一个程序计算了协方差矩阵。然后最终我想计算马哈拉诺比斯距离,这将需要相反的反转。
但是我的协方差矩阵中的条目非常小,很多都是零。
尝试查找反向时得到的消息是:
警告:Matrix的工作精度是单数。
这一切的含义是什么?我该怎么办?请建议我。
问候
普拉香特
答案 0 :(得分:1)
如果矩阵为singular
,则表示它是不可逆的。行列式为0,这意味着矩阵中至少有2行是线性相关的,例如[0.5,0.5;0.5,0.5]
或[1,0;0,0]
。但是,您确定协方差矩阵是否正确计算?协方差矩阵不太可能具有2个线性相关的行,因为一组样本的协方差应该与其自身具有高协方差。但是,两个几乎相似的过程可能会导致此问题。尝试:
a = randn(1000,1);
b = randn(1000,1);
covAB = cov(a,b);
covAA = cov(a,a);
covAB^-1
covAA^-1