数据统计分析
1.1 最大值和最小值
-
MATLAB提供了求数据序列最大值的函数max和求最小值的函数min,它们的调用格式和操作过程类似。
1.求向量的最大值和最小值
求向量X的最大值的函数有两种调用格式,分别是:
① y=max(X):返回向量X的最大值,并存入y。如果X中包含复数元素,则按模取最大值。
② [y,k]=max(X):返回向量X的最大值,并存入y,最大值的序号存入k。如果X中包含复数元素,则按模取最大值。
求向量X的最小值的函数是min(X),用法和max(X)相同。例如,求向量x的最大值,:
2.求矩阵的最大值和最小值
求矩阵A的最大值的函数有3种调用格式,分别是:
① 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行上的最大值。
求矩阵最小值的函数是min,其用法和max函数相同。例: 求矩阵A每行及每列的最大值,并求整个矩阵的最大值。
3.两个向量或矩阵对应元素的比较
函数max和min还能对两个同型的向量或矩阵进行比较,调用格式为:
① U=max(A,B):A、B是两个同型的向量或矩阵,结果U是与A、B同型的向量或矩阵,U的每个元素等于A、B对应元素的较大者。
② U=max(A,n):n是一个标量,结果U是与A同型的向量或矩阵,U的每个元素等于A对应元素和n中的较大者。
min函数的用法和max函数相同。例,求两个2×3矩阵x、y所有同一位置上的较大元素构成的新矩阵p,以及一个常数与矩阵比较。
1.2 求和与求积
- 数据序列求和用sum函数。设X是一个向量,A是一个矩阵,sum函数的调用格式为:
① sum(X):返回向量X各元素的和。
② prod(X):返回向量X各元素的乘积。
③ sum(A):返回一个行向量,其第i个元素是A的第i列的元素和。
④ prod(A):返回一个行向量,其第i个元素是A的第i列的元素乘积。
⑤ sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素之和。
⑥ prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素乘积。 数据序列求积用prod函数,其使用方法与sum函数相同。例:求矩阵A的每行元素之和和全部元素之和。
1.3 平均值和中值
-
数据序列的平均值指的是算术平均值。所谓中值,是指在数据序列中其值的大小恰好处在中间的元素。
-
求矩阵和向量元素的平均值的函数是mean。设X是一个向量,A是一个矩阵,函数的调用格式为:
① mean(X):返回向量X的算术平均值。
② mean(A):返回一个行向量,其第i个元素是A的第i列的算术平均值。
③ mean(A,dim):当dim为1时,该函数等同于mean(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的算术平均值。
求中值的函数是median,其调用方法和mean函数相同。例:求向量x的平均值:
1.4 累加和与累乘积
-
设U=(u1,u2,u3,…,un)是一个向量,V、W是与U等长的另外两个向量,并且
称V为U的累加和向量,W为U的累乘积向量。 -
在MATLAB中,使用
cumsum和cumprod函数能方便地求得向量和矩阵元素的累加和与累乘积向量,它们的调用格式相同,其中cumsum函数的调用格式为:
① cumsum(X):返回向量X累加和向量。
② cumsum(A):返回一个矩阵,其第i列是A的第i列的累加和向量。
③ cumsum(A,dim):当dim为1时,该函数等同于cumsum(A);当dim为2时,返回一个矩阵,其第i行是A的第i行的累加和向量。例:求s=1!+2!+…+6!的值。
1.5 标准差与相关系数
-
求标准差:对于具有n个元素的数据序列x1、x2、x3、…、xn,标准差的计算公式如下:
-
MATLAB提供了计算数据序列的标准差的函数
std。对于向量X,std(X)返回一个标准差。对于矩阵A,std(A)返回一个行向量,它的各个元素便是矩阵A各列或各行的标准方差。std函数的一般调用格式为:
Y=std(A,flag,dim):其中,dim取1或2。当dim=1时,求各列元素的标准差;当dim=2时,则求各行元素的标准差。flag取0或1,当flag=0时,按S1所列公式计算标准差;当flag=1时,按S2所列公式计算标准差。默认取flag=0,dim=1。例:对二维矩阵x,从不同维方向求出其标准方差。
-
相关系数
对于两组数据序列xi、yi(i=1,2,…,n),可以由下式计算出两组数据的相关系数:
① corrcoef(X,Y):其中,X、Y是向量。corrcoef(X,Y)返回序列X和序列Y的相关系数,得到的结果是一个2×2矩阵,其中对角线上的元素分别表示X和Y的自相关系数,非对角线上的元素分别表示X与Y的相关系数和Y与X的相关系数,两个是相等的。corrcoef(X,Y)与corrcoef([X,Y])等价。
② corrcoef(X):对于一般的矩阵X,corrcoef(X)返回从矩阵X形成的一个相关系数矩阵。此相关系数矩阵的大小与矩阵X一样。系数矩阵中第i行第j列的元素代表原矩阵X中第i个列向量和第j个列向量的相关系数。例:生成满足正态分布的10000×5随机矩阵,然后求各列元素的均值和标准方差,再求这5列随机数据的相关系数矩阵。
1.6 排序
- 对向量元素进行排序是一个经常性的操作,MATLAB中对向量X进行排序的函数是
sort(X),函数返回一个对X中的元素按升序排列的向量。
sort函数也可以对矩阵A的各列或各行重新排序,其调用格式为:
[Y,I]=sort(A,dim,mode):其中,Y是排序后的矩阵,而I记录Y中的元素在A中的位置。dim指明对A的列还是行进行排序,若dim=1,则按列排;若dim=2,则按行排。dim默认取1。mode指明按升序还是按降序排序,'ascend'按升序,'descend'按降序。mode默认取'ascend'。例:对下列矩阵做各种排序。