我试图用matlab中的最大似然法计算估计均值和协方差.我是Matlab的新手,有一些问题我喜欢在这里被解决。
我使用以下代码:
clear all;
%Visualization of 2D Gaussian Distribution
% Mean of the distribution
mu = [1 -1];
% Covariance matrix (Must be symetric)
sigma = [ 2 1 ; 1 3 ];
% Samples
X = mvnrnd(mu,sigma,1000);
analytical_mean = mean(X);
analytical_cov = cov(X);
N = size(X,1);
estimated_mean = sum(X)/N;
summation = 0;
for i=1:N,
row = X(i,:);
tmp1= (row - estimated_mean);
tmp2 = tmp1';
summation = summation + tmp2;
end
covar = summation/N;现在analytical_mean和estimated_mean是相等的,但是我计算出来的协方差covar不是像analytical_cov这样的矩阵。好的,我需要知道如何正确计算covar。
我所用的方程式如下:

发布于 2014-07-08 09:28:46
你可以试试这个
[m,n] = size(X);
estimated_mean = sum(X)/m;
tmp=zeros(m,n);
for i=1:n
tmp(:,i)= ((X(:,i) - estimated_mean(i)));
end
covar = (tmp.'*tmp)/m;https://stackoverflow.com/questions/24626561
复制相似问题