2014-10-02 147 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