matlab - 计算点p到高维高斯(M,V)的距离

标签 matlab distance gaussian ellipse

我有一个具有均值 M 和协方差矩阵 V 的高维高斯。我想计算点 p 到 M 的距离,同时考虑 V(我猜这是 p 与 M 的标准差距离?)。

换句话说,我从 M 中取出一个椭圆,并想检查 p 是否在该椭圆内。

最佳答案

如果 V 是有效的高斯协方差矩阵,则它是对称正定的,因此定义了有效的标量积。顺便说一句,inv(V) 也是如此。

因此,假设 M 和 p 是列向量,您可以将距离定义为:

d1 = sqrt((M-p)'*V*(M-p));
d2 = sqrt((M-p)'*inv(V)*(M-p));

Matlab 将 d2 重写为(可能是一些不必要的括号):

d2 = sqrt((M-p)'*(V\(M-p)));

好处是当 V 是单位矩阵时,d1==d2它对应于经典的欧几里得距离。要确定您是否必须使用 d1d2 留作练习(抱歉,我的部分工作是教学)。编写多维高斯公式并将其与一维情况进行比较,因为多维情况只是一维情况的特例(或进行一些数值实验)。

注意:在非常高维的空间中或对于非常多的测试点,您可能会从 V 的特征向量和特征值(即椭球体的主轴及其相应的方差)中找到一种聪明/更快的方法。

希望这对您有所帮助。

A.

关于matlab - 计算点p到高维高斯(M,V)的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4455066/

相关文章:

matlab - matlab中两幅彩色图像的直方图匹配

matlab - 是否可以在 MATLAB 中跨多个图形同步数据游标?

matlab - 如何在matlab中删除具有所有相同元素的列?

vb.net - 找到最小值。 vb.net 中列表中的值

algorithm - 离屏敌人指示器算法

java - OpenCV:有关 Sobel Dritevatives 的教程在 Android 上不起作用,出现 nullpointerException

python - 即使提供了良好的猜测,scipy curve_fit 也根本无法正确拟合?

matlab - 高斯超几何函数 2F1

matlab - matlab图中的注释

distance - 'a'中的 'c'和 'Haversine formula'代表什么来测量两点之间的距离?