2014-10-02 104 views
1

我相信therre是一個簡單的答案,但我還沒有找到它。我要計算在其他方式的陣列(最大值,最小值,平均值,中位數,STD)比統計:Matlab - 一次計算統計數據(max,min,mean,median,std ...)

max = max(array) 
min = min(array) 
mean = mean(array) 
median = median(array) 
std = std(array 

因爲(我相信)它會去通過陣列,每一次至少一次。我希望有一個像

[max, min, mean, median, std,...] = stat(array) 

類似於R函數

summary(Array) #R code 

或到STATA命令

des //stata 

我應該在Matlab使用什麼功能,一些功能?

+1

如果您有曲線擬合工具箱,可以使用['datastats'](http://www.mathworks.nl/help/curvefit/datastats.html)。 **編輯**:事實證明,它在內部執行最大值,最小值等功能。 – MeMyselfAndI 2014-10-02 11:13:45

+0

仍然存在,至少它是在一個函數中,它可能會在未來更改爲一次運行(因此對於代碼風格,如果我沒有找到方法一次找到統計信息,我將使用它) – Pter 2014-10-02 11:21:00

+0

或者你可以編寫你自己的函數,它調用'min','max'等等。這樣你只需要調用一個函數。 – am304 2014-10-02 11:25:29

回答

0

這裏是一個函數,它是:

function [maxout, minout, meanout, medianout, stdout] = summary(array) 

maxout = max(array); 
minout = min(array); 
meanout = mean(array); 
medianout = median(array); 
stdout = std(array); 

只是複製,將其保存到名爲summary.m您的路徑上的一個文件,你應該是好去。

+1

我覺得OP是要求功能不僅僅是循環儘管矢量一次內部... – Dan 2014-10-02 12:51:56

+0

謝謝你的答案:)但是,丹說我要求的函數計算所有的,所以它沒有不必要的循環 - 例如,最小和最大做一個循環的數據每個,但如果我有函數minmax通過數據並記住最小值和最大值,它可以檢查數組的元素是最大值還是最小值。 – Pter 2014-10-02 14:33:59