群组函数grpstats

前面讨论到之平均值求法,通常应用于整个数组之值,若要应用到比较复杂的分组平均问题,则必须使用不同的函数才能达成。此项指令之格式如下:

means = grpstats(X, group)

[means, sem, counts, name] = grpstats(X, group, whichstats)

grpstats(x, group, alpha)

输入参数中X为求平均值之对象,X可为多行,其平均结果也会多行。group则为与X同列长之数组,可能由多项分组之向量组成,其内容可为字符串列或细胞数组之文字,如{G1 G2 G3}。若X中之元素同属分组中之一项,则其平均值会出现在该项下。

在输出项中,第一项means为群组平均,sem为组内标准偏差,counts为各组之项数,name则为各组之名称。上述项目并非一成不变,亦可以在输入参数whichstats内依自己之需要进行设定,这个设定有特定的名称,其名称必须使用细胞数组。项目包括:

'mean' 组平均

'sem' 组标准偏差

'numel' 各组之数目

'gname' 各组之名称

'std' 标准偏差

'var' 变异值

'meanci' 平均值之95%上下范围

'predci' 新值预测之95%信任范围

输入参数中有alpha,可改变其显著水平,其默认值为0.05,或为95%之信任水平。

输出项中,means 即为各分组项之平均值,sem为该分组项之标准偏差,counts为该分组下之观察值数目,而name则为该分组之名称。

范例一:

x = 1     2     3     4     5     6     7     8     9    10

group= 1     1     1     1     1     2     2     2     2     2;

>> grpstats(x,group)

ans =

3

8

上述结果为分两组的平均,前五项为一组,后五项为一组。结果第一组平均为3,第二组为8。

组别间,其项数并不一定要相同,例如:

范例二:

x =

1     2     3     4     5     6     7     8     9

>> group=[1 1 1 1 2 2 2 2 2]

group =

1     1     1     1     2     2     2     2     2

>> [m,s,c]=grpstats(x,group)

m =

2.5000

7.0000

s =

0.6455

0.7071

c =

4

5

其输出之第一项为平均值,第二项为标准偏差,第三项为各组之项数。故即使各组之样本数不同也可以得到对应组之统计数据。

范例三:

设有200个观测值分成四小组,每一观测值分成五项,其平均范围由1-5。为制造这样的数据,下面之例子实际上应用了许多特定的函数:

unidrnd(4,100,1) 平均制造一个100X1的数组,其中之数值分配为1:4的整数范围,以每项分别以1,2,3,4随机出现。

normrnd(true_mean,1) 常态分配之随机数函数,其平均值为true_mean,其标准偏差为1。

true_mean((ones(100,1),:) 利用原来设定之(ones(100,1),:)数组,重复100次。

执行此程序后,由于n为细胞数组,故全改为字符串才能同时显现其结果,其结果如下:

group = unidrnd(4,100,1);%create a 100X1 matrix in random [ 1,2,3,4 ]

true_mean = 1:5;

true_mean = true_mean(ones(100,1),:); %100X5 matrix

x = normrnd(true_mean,1); %randomize

[m, s, c,n] = grpstats(x,group);

[n num2cell(m)]

ans =

'1'    [0.9584]    [1.8200]    [2.8412]    [4.1669]    [5.0220]

'2'    [0.8972]    [1.8393]    [2.9423]    [4.0044]    [4.9437]

'3'    [0.9768]    [2.1093]    [3.1565]    [3.9860]    [5.0585]

'4'    [1.1164]    [2.2249]    [2.8920]    [4.1323]    [5.3251]

范例四:

利用matlab所附的carsmall.mat示范档案,其中参数项目包括重量(Weight)、年份(Model_Year)等数据,利用该项数据求其年份下之平均车重、预测值、年份名称及各年份下之数量。最后并利用errorbar绘出其范围。

% cargroup.m

load carsmall

[Weight Model_Year]'

[means,p,year,count] = grpstats(Weight,Model_Year,...

{'mean','predci','gname','numel'})

n = length(means);

errorbar((1:n)',means,p(:,2)-means)

set(gca,'xtick',1:n,'xticklabel',year)

title('95% prediction intervals for mean weight by year')

先将上述程序存为cargroup.m档案,执行后应有许多数据,其中仅选择本题所需要者。其过程如下:

>> cargroup

ans =

Columns 1 through 7

3504        3693        3436        3433        3449        4341        4354

70          70          70          70          70          70          70

Columns 8 through 14

4312        4425        3850        3090        4142        4034        4166

70          70          70          70          70          70          70

= == == == == == == == == == == ==

Columns 92 through 98

2835        2665        2370        2950        2790        2130        2295

82          82          82          82          82          82          82

Columns 99 through 100

2625        2720

82          82

means =

1.0e+003 *

3.4413

3.0787

2.4535

p =

1.0e+003 *

1.7770    5.1056

1.3832    4.7742

1.7184    3.1887

year =

'70'

'76'

'82'

count =

35

34

31

matlab编程求平均,matlab中的分组平均函数grpstats的用法相关推荐

  1. 弯曲圆波导matlab_基于MATLAB编程的圆形波导中能流密度分布图仿真

    基于 MATLAB 编程的圆形波导中能流密度分布图仿真 王永龙 ; 夏昌龙 ; 刘朋 [期刊名称] <临沂大学学报> [年 ( 卷 ), 期] 2008(030)003 [摘要] 基于 M ...

  2. matlab绘制两个函数,用matlab程序 在同一图中绘制两个函数,这两个函数分别是: , ,,matlab怎样同时画出两个函数图...

    导航:网站首页 > 用matlab程序 在同一图中绘制两个函数,这两个函数分别是: , ,,matlab怎样同时画出两个函数图 用matlab程序 在同一图中绘制两个函数,这两个函数分别是: , ...

  3. matlab编程选择语句,Matlab编程-基本命令行语句

    (1) mathlab命令行中","与":"的区别: 结尾不加任何东西也会输出结果 以","结尾不显示变量数值,但是再次输入变量名之后可以输 ...

  4. 编程求文件file1中数据的平均值,并将其与平均值最接近的数删除

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p257 习题8 4.编程求文件file1中数据的平均值,并将其与平均值最接近的数删除 #include ...

  5. C语言基础课 编写程序之1.百元买鸡,公鸡一只5元,母鸡一只3元,小鸡3只一元,现将一百元要买一百只鸡,公鸡母鸡小鸡各多少只2.编程求1~200中能被2除余1或能被3除余1或能被5除余1的前10个整数

    1.拿百元买鸡问题.公鸡一只5元,母鸡一只3元,小鸡3只一元,现将一百元要买一百只鸡,请问一百只鸡中公鸡,母鸡,小鸡各多少只 #include<stdio.h> int main() {i ...

  6. 三菱PLC编程软件GX WORKS3中如何使用FB函数块?

    三菱PLC编程软件GX WORKS3中如何使用FB函数块? 首先,我们新建一个工程项目,如下图所示,我们双击"程序本体"进入程序编辑界面: 2. 我们找到右侧的部件选择窗口(这里以 ...

  7. php strpose_php中strpos()和stripos()函数的区别用法详解

    本篇文章主要给大家介绍PHP中strpos()和stripos()函数的区别用法介绍,希望对需要的朋友有所帮助! strpos()函数 这个函数帮助我们找到一个字符串在另一个字符串中第一次出现的位置. ...

  8. strcasecmp php,PHP中strcmp()和strcasecmp()函数字符串比较用法分析

    本文实例讲述了PHP中strcmp()和strcasecmp()函数字符串比较用法.分享给大家供大家参考,具体如下: 一.PHP中strcmp()函数用于比较两个字符串(区分大小写),其定义如下: s ...

  9. 利用matlab软件求数列的中值,matlab求两个数列的方差

    matlab怎么求矩阵所有元素的期望和方差? 标准差s=std(X(1:end),flag)flag=0,采用1/(N-1)的系数,flag=1,采用1/(N)的系数 matlab用var函数算出的方 ...

最新文章

  1. 4.4 为什么使用深层表示-深度学习-Stanford吴恩达教授
  2. (18)修改 PTE 实现挂物理页读写空指针
  3. 轻量级3d模型查看器_耐能取得两项软件著作权,自研轻量级3D人脸识别算法领先业界...
  4. TagHelper是怎么实现的
  5. leetcode107. 二叉树的层次遍历 II
  6. protobuf2和3同时安装_在 Ubuntu 上安装 Protobuf 3 的教程详解
  7. 服务器双cpu性能强不,双CPU的电脑用起来,性能和功耗都是原来的两倍?
  8. Oracle包和包体
  9. uva 11178(几何)
  10. Java调用SuperMap iServerJava6R的REST API
  11. HDFS 读/写数据流程
  12. 整篇文章翻译软件对接谷歌等各大翻译平台
  13. jsp 之 入门 jsp代码块
  14. oracle所有自带系统表,oracle常用系统表
  15. 用c语言写一个求和的程序,用C语言编写一个“等比数列求和”的程序?
  16. TST扫描电镜与透射电镜有什么不同?
  17. Word2010经常莫名其妙无法撤销
  18. 世人皆苦,唯有自渡的句子,句句触动灵魂!
  19. 清晰明了有趣味的数字加密讲解
  20. 布朗大学计算机专业怎么样,布朗大学的计算机专业如何?

热门文章

  1. 反射创建对象_Go 反射:根据类型创建对象-第一部分(原始类型)
  2. winxp一键锁定计算机,WinXP下锁定计算机的3种方法
  3. java重入锁 自旋锁_java 自旋锁(可重入且无死锁)
  4. 安装m2eclipse插件
  5. Antd 多层Modal+Form组件嵌套 如何在父级组件中清空子级组件状态与数据?
  6. java 抽象类和接口2--什么时候用接口什么时候用抽象类
  7. java中outputstream以及其子类 flush有什么作用呢
  8. java作业——Day0014
  9. (大数据工程师学习路径)第二步 Vim编辑器----Vim文档编辑
  10. Android简单的TXT文件存储