MATLAB 协方差

function [Acov]= cov_func(AA, desc)
%cov_func(): 协方差计算
%INPUT:
% AA: data matrix
% desc: 'sample':样本协方差/'total':总体协方差
%OUTPUT:
% Acov: 协方差矩阵

[Adim, Anum]= size(AA);
Abar= mean(AA, 2);
if strcmp(desc,'sample')
    Acov= (AA-Abar)*(AA-Abar)'/(Anum-1); % [a1, a2, ..., an]*[a1'; a2'; ...; an']= (a1*a1'+ a2*a2'+...+an*an')/(n-1)
elseif strcmp(desc,'total')
    Acov= (AA-Abar)*(AA-Abar)'/(Anum); % [a1, a2, ..., an]*[a1'; a2'; ...; an']= (a1*a1'+ a2*a2'+...+an*an')/(n)
else
    error(['error in cov_func(): desc=', desc, ' is wrong!']);
end



end

  

等价于MATLAB函数

cov(AA)

  

感谢 https://www.cnblogs.com/sunny99/ sumoier对本文的帮助!

posted @ 2024-02-01 13:11  20岁博客少女  阅读(32)  评论(0编辑  收藏  举报