1. 程式人生 > >matlab 矩陣求和、期望和均方差

matlab 矩陣求和、期望和均方差

matlab中矩陣元素求和、求期望和均方差

在matlab中求一個矩陣中元素的和可以自己編寫for迴圈來完成,這樣比較方便,想求那些資料的和都可以做到,然而效率比較低,如果資料量大程式會跑好長時間。所以我們可以轉而用matlab提供的sum函式。

設M為一個矩陣,那麼:

1、求和

sum(M):以矩陣M的每一列為物件,對每一列的資料分別求和。

sum(M,2):以矩陣的每一行為物件,對每一行的資料分別求和。

sum(M(:)):將矩陣中的所有元素相加求和。

2、求期望

matlab中矩陣元素求期望的函式mean與sum用法雷同。

mean(M):以矩陣M的每一列為物件,對每一列的資料分別求期望。

mean(M,2):以矩陣的每一行為物件,對每一行的資料分別求期望。

mean(M(:)):以矩陣所有資料為物件求期望。

3、求均方差

若要求整個矩陣所有元素的均方差,則要使用std2函式:std2(M)

注:Matlab中有求陣列方差的 函式:var;要注意的是var函式所採用公式中,分母不是length(X) ,而是length(X)-1 。這是因為var函式實際上求的並不是方差,而是誤差理論中“有限次測量資料的標準偏差的估計值”。var沒有求矩陣的方差功能,可使用std先求均方差,再平方得到方差。std,均方差,std(X,0,1)求列向量方差,std(X,0,2)求行向量方差。

eg:

>>X=[1,2,3,4]

>>var(X)=1.6667

>> sum((X(1,:)-mean(X)).^2)/length(X)=1.2500

>> sum((X(1,:)-mean(X)).^2)/(length(X)-1)=1.6667