[MATLAB]数据统计分析平均值(mean/median/sum/prod/cumsum)

一、求矩阵的最大元素和最小元素max(); 求向量或矩阵的最大元素min(); 求向量或矩阵的最小元素当参数为向量时,函数有两种调用格式:

max(); 求向量或矩阵的最大元素
min(); 求向量或矩阵的最小元素
  • y=max(X); 返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值。
  • [y,k]=max(X);返回向量X的最大值存入y,最大值元素的序号存入k,如果X中包含复数元素,则按模取最大值。

例1:求向量x的最大元素,其中x=[-43,72,9,16,23,47].
代码:

>> x=[-43,72,9,16,23,47];
>>> y=max(x);
>>> [x,k]=max(x);

当参数为矩阵时,函数有三种调用格式:

  • max(A):返回一个行向量,向量的第i个元素的是矩阵A的第i列上的最大值。
  • [Y,U]=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值元素的行号。
  • max(A,[],dim):dim取1或2。dim取1时,该函数的功能和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值

例2 求矩阵A的每行及每列的最大元素,并求整个矩阵的最大元素。
在这里插入图片描述

>> A=[13,-56,78;25,63,-235;75,25,563;1,0,-1];
>> max(A)
ans =
    75    63   563
>> max(A,[],2)
ans =
    78
    63
   563
     1
>> max(max(A))
ans =
   563
>> max(A(:))


ans =


   563

二、求矩阵的平均值和中值

  • 平均值:指算术平均值,即每项数据之和除以项数
  • 中值:指在数据序列中其值的大小恰好处在中间的元素。如果数据个数为奇数,则取值为大小位于中间的元素;如果数据个数为偶数,则取中间两个元素的平均值
  • 求算术平均值:mean()
  • 求中值:median()

例三:
在这里插入图片描述

>> x=[1200,800,1500,1000,5000];
>> mean(x)


ans =


        1900


>> median(x)


ans =


        1200


>>

总结:平均值很容易受极值的影响,也就是容易被平均。
三、求和与求积

  • sum():求和函数
  • prod():求积函数

四、累加和与累乘积

  • cumsum():累加和函数
  • cumprod():累乘积函数

例子四:求向量X=[1,2,3,4,5,6,7,8,9,10]的积与累乘积。

>> X=[1,2,3,4,5,6,7,8,9,10];
>> y1=prod(X)

y1 =
   
   
        3628800
   
   
   >> y2=cumprod(X)
   
   
   y2 =
   
   
     Columns 1 through 5
   
   
              1           2           6          24         120
   
   
     Columns 6 through 10
   
   
            720        5040       40320      362880     3628800
   
   
   >>

五、标准差与相关系数
标准差用于计算数据偏离平均数的距离的平均值,其计算公式为:
在这里插入图片描述
std():计算标准差函数.
调用格式:

  • std(X):计算向量X的标准差
  • std(A):计算矩阵A的各列的标准差
  • std(A,flag,dim):flag取0或者1,当flag=0时,按S1所列公式计算样本标准差;当flag=1时,按S2所列公式计算总体标准差。默认情况下,flag=0,dim=1

例5 生成满足正态分布的50000*4的随机矩阵,用不同的形式求其各列之间的标准差.

>> x=randn(50000,4);
>> y1=std(x,0,1)


y1 =


    1.0028    0.9990    0.9982    1.0019


>> y2=std(x,1,1)


y2 =


    1.0028    0.9990    0.9982    1.0019


>> x1=x';
>> y3=std(x1,0,2);
>> y3'


ans =


    1.0028    0.9990    0.9982    1.0019


>> y4=std(x1,1,2);
>> y4'


ans =


    1.0028    0.9990    0.9982    1.0019


>>

相关系数:能够反映两组数据序列之间相互关系,其计算公式为
在这里插入图片描述
corrcoef():相关系数函数。
调用格式:

  1. corrcoef(A):返回由矩阵A所形成的一个相关系数矩阵,其中,第i行第i列的元素表示原矩阵A中第i列和第j列的相关系数。
  2. corrcoef(X,Y):在这里,X、Y是向量,它们与corrcoef([X,Y])的作用一样,用于求X,Y向量之间的相关系数。
    在这里插入图片描述
>> A=[5032,6000,5100,5200;6532,6500,6600,5800;
5500,7000,5400,4800;4530,4000,4300,4200;
2300,2000,2200,2500;3254,3000,3500,3000;
8095,9000,7800,8500;7530,8000,7000,7500;
3841,3200,3500,3200;4500,5200,4800,4000];
>> corrcoef(A)


ans =


    1.0000    0.9630    0.9906    0.9782
    0.9630    1.0000    0.9694    0.9466
    0.9906    0.9694    1.0000    0.9635
    0.9782    0.9466    0.9635    1.0000


>>

六、排序
sort():排序函数.
调用格式:

  • sort(X):对向量X按升序排列。

  • [Y,I]=sort(A,dim,mode)

    其中,dim指明对A的列还是行进行排序。mode指明按升序还是降序排序,若取"ascend",则按升序;若取“descend”,则按降序,默认为升序。输出参数中,Y是排序后的矩阵,而I记录Y中的元素在A中位置。
    例七:对下列矩阵做各种排序。
    在这里插入图片描述

>> A=[1,-8,5;4,12,6;13,7,-13];
>> sort(A)


ans =


     1    -8   -13
     4     7     5
    13    12     6


>> sort(A,2,'descend')


ans =


     5     1    -8
    12     6     4
    13     7   -13


>> [X,I]=sort(A)


X =


     1    -8   -13
     4     7     5
    13    12     6




I =


     1     1     3
     2     3     1
     3     2     2


>>
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值