1. 程式人生 > >Matlab-計算協方差矩陣函式

Matlab-計算協方差矩陣函式

一、原始碼

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

 

參考:

http://www.cnblogs.com/chaosimple/p/3182157.html