Matlab 期望最大化,协方差步长

Matlab 期望最大化,协方差步长,matlab,Matlab,我正在实现一个我知道是正确的算法(已经提供了),但我认为我没有正确地编码它。这个方程式的Matlab代码是什么 其中: r是一个2x400矩阵 x是一个1x400矢量 mu是一个1x2向量 for (cGauss = 1:2) sumR = sum(r(cGauss,:)); cov(1,cGauss) = sum(r(cGauss,:).*((x - mean(cGauss))*(x - mean(cGauss))'))/sumR; end 每次迭代后得到的协方差值大约为600,此时

我正在实现一个我知道是正确的算法(已经提供了),但我认为我没有正确地编码它。这个方程式的Matlab代码是什么

其中:

  • r是一个2x400矩阵
  • x是一个1x400矢量
  • mu是一个1x2向量

    for (cGauss = 1:2)
    sumR = sum(r(cGauss,:));
    cov(1,cGauss) = sum(r(cGauss,:).*((x - mean(cGauss))*(x - mean(cGauss))'))/sumR;
    end
    

每次迭代后得到的协方差值大约为600,此时它应该从0.75略微向上调整。

我怀疑类似这样的情况

平均值(cgaus,:)

而不是

平均值(cgaus)


for
循环的
end
在哪里?您得到的是什么错误或不正确的输出?请移除计算机视觉标签,因为它与此问题无关。嗨。该算法是西蒙·普林斯(Simon Prince)在《计算机视觉》(computer vision)一书中提出的人脸检测算法的一部分,与此无关。期望最大化是一种通用技术,您的问题本身与图像或计算机视觉无关。我已经取下了标签。