一、源码
function [ COVMAT ] = covarianceMatrix( inputData )
% covarianceMatrix( inputData )
% 这是一个计算协方差矩阵的函数
% inputData 输入数据
% 每一行为一个维度
% 每一列为一个样本
%获得输入数据维度
[m,n] = size(inputData);
%创建协方差矩阵
COVMAT = zeros(m,m);
%取得每维数据平均值
E = zeros(m,1);
for i = 1:m
E(i) = mean(inputData(i,:));
end
%计算协方差
for i = 1:m
for j = 1:m
COVMAT(i,j) = ((inputData(i,:)-E(i))*(inputData(j,:)-E(j))')./(n-1);
end
end
二、测试数据
数据样本:
MySample = [40 45 6 45 31 4 13 27 47 48;7 48 47 24 40 7 21 45 39 47;32 1 42 46 33 37 37 19 32 8]
运算结果:
>> covarianceMatrix(MySample)
ans =
301.1556 78.0000 -120.2444
78.0000 268.9444 -126.9444
-120.2444 -126.9444 216.0111