本文全部參考自:
http://www.cnblogs.com/welen/articles/5535042.html#undefined
知識點一:
MATLAB中四個取整函數具體使用方法如下:
Matlab取整函數有: fix, floor, ceil, round.
fix
朝零方向取整,如fix(-1.3)=-1; fix(1.3)=1;
floor
朝負無窮方向取整,如floor(-1.3)=-2; floor(1.3)=1;
ceil
朝正無窮方向取整,如ceil(-1.3)=-1; ceil(1.3)=2;
round
四舍五入到最近的整數,如round(-1.3)=-1;round(-1.52)=-2;round(1.3)=1;round(1.52)=2。
知識點二:
matlab std函數是用來計算標准偏差的一個函數
std(A)函數求解的是最常見的標准差,此時除以的是N-1。
注意:此函數命令不能對矩陣求整體的標准差,只能按照行或者列進行逐個求解標准差,默認情況下是按照列。
在MATLAB主窗口中輸入std(A) 回車,結果如下:
輸出的是每一列的標准差。
std(A,flag):
這里flag代表的是用哪一個標准差函數,如果取0,則代表除以N-1,如果是1代表的是除以N。
知識點三:
協方差公式:
例子:
clc; clear; mySample = fix(rand(10,3)*100); dim1 = mySample(:,1); %所有樣本的同一維度 dim2 = mySample(:,2); dim3 = mySample(:,3); %計算dim1與dim2,dim1與dim3,dim2與dim3之間的協方差 %參考協方差公式 conv12 =sum( (dim1-mean(dim1)).*(dim2-mean(dim2)) ) /( size(mySample,1)-1 ); conv13 =sum( (dim1-mean(dim1)).*(dim3-mean(dim3)) ) /( size(mySample,1)-1 ); conv23 =sum( (dim2-mean(dim2)).*(dim3-mean(dim3)) ) /( size(mySample,1)-1 ); %計算各個維度的方差 var1 = std(dim1)^2 var2 = std(dim2)^2 var3 = std(dim3)^2 %---------------------------------- %使用標准函數cov進行驗證 cov(mySample)
測試結果:
使用Matlab的cov函數直接計算樣本的協方差矩陣計算的結果,和之前的數據填入矩陣后的結果完全相同。